expire und proxy/cache??????????
matthias
- browser
Hallo,
ich habe eine Seite mit folgenden <HEAD> Informationen:
<TITLE>blubber</TITLE>
<META http-equiv="Cache-Control" content="no-cache">
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Expires" content="0">
Gehen wir davon aus dass diese Seite 4 Wochen im Netz steht.
Wenn ich die Datei dann ändere (im body) kriegen viele Benutzer aus dem Netz trotz aller META tags noch die alte Seite.
Warum?
Gibts am Apache was Wichtiges zu konfigurieren?
Wo werden die Expires für andere Files gesetzt?
Wo werden die Expires für includierte Files gesetzt (*.js zb. oder *.gif etc. welche auch lokal gecached werden) ??
Bitte dringend um Hilfe.
Gruss
Matthias
Hallo,
ich habe eine Seite mit folgenden <HEAD> Informationen:
<TITLE>blubber</TITLE>
<META http-equiv="Cache-Control" content="no-cache">
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Expires" content="0">
Ich halte von solchen Meta-Angaben gar nichts. Sie behindern die natürlichen und gewollten Caching-Mechanismen, und außerdem muss die Meta-Angabe nicht mal funktionieren - hingegen solltest du dir, wenn du ohnehin schon damit rumspielen willst, lieber die HTTP-Header und deren Konfiguration ansehen.
Gehen wir davon aus dass diese Seite 4 Wochen im Netz steht.
Wenn ich die Datei dann ändere (im body) kriegen viele Benutzer aus dem Netz trotz aller META tags noch die alte Seite.
Bist du da sicher? Welche sind es? Haben die einen Zwangsproxy? Haben sie dir bestätigt, dass sie noch die alte Seite sehen?
Warum?
Gibts am Apache was Wichtiges zu konfigurieren?
Wo werden die Expires für andere Files gesetzt?
Wo werden die Expires für includierte Files gesetzt (*.js zb. oder *.gif etc. welche auch lokal gecached werden) ??
Informiere dich mal über mod_expires. Dann brauchst du auch nicht mehr mit den Metaangaben rumhampeln.
Ansonsten ist es IMO schlauer, auf ein Expires ganz zu verzichten. Denn mit der Angabe eines Verfallsdatums (IMO ist hierzu ein Zeitpunkt festzulegen, kein Zeitraum) veranlaßt du alle beteiligten Komponenten (Proxys, Browser), von der Gültigkeit bis zu diesem Datum auszugehen. Ohne Verfallsdatum und bei entsprechender Browsereinstellung wird dieser bei jedem Abruf der Seite beim Server nachfragen, ob es schon eine neuere Version gibt (Datum des letzten bekannten Standes aus dem Cache wird vom Browser mitgesendet). Der Server kann dann entweder mit Status "304 Not modified" antworten (=> Nimm deinen Cache), oder mit Status "200 OK" eine neue Version schicken.
Expires eignet sich gut für Seitenelemente, welche sich gerade nicht häufig ändern, also Bilder und Skripte. Aber auch (mit kurzem Zeitraum) z.B. für Newsseiten, die eben nur ein ganz kurzes Haltbarkeitsdatum kriegen (wenige Stunden bis Tage).
Mit anderen Worten: Wende nicht blind irgendwas an, was vielleicht dein Problem lösen könnte, sondern überlege, wie die Angabe des Verfallsdatums deinen Besuchern und den Proxys helfen kann, so wenig wie möglich neu anfordern zu müssen. Und verwende dazu echte Angaben im HTTP-Header, keine Meta-Angaben. Nur dann wirst du wirklich bei allen Komponenten (insbesondere Proxys) Erfolg haben.
- Sven Rautenberg