Michael Schröpl: (und PHP) Caching erzwingen

Beitrag lesen

Hi Uwe,

ich verwende diese Header, um ein Caching zu verhindern:
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

Dies ist die HTTP/1.0-Methode, einem Client Informationen bezüglich Caching zu geben.
Damit setzt Du das Verfallsdatum in die Vergangenheit - wenn Du es in die Zukunft setzt, dann motivierst Du einen Cache vielleicht, Dur zu glauben.

header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");

damit nährst Du aus der Sicht eines Cache die Vermutung, es handele sich um eine statische Ressource.
Das dürfte nach meiner Erfahrung das Caching nicht verhindern, sondern in vielen Fällen überhaupt erst ermöglichen. Deshalb gibt es beispielsweise das hier:
    http://httpd.apache.org/docs/mod/mod_include.html#xbithack

header("Cache-Control: no-store, no-cache, must-revalidate");

Dies ist die HTTP/1.1-Methode, einem Client Informationen bezüglich Caching zu geben.
Sie ist viel genauer (Du kannst hier sogar beschreiben, _wer_ etwas cachen darf - nur der Client oder auch irgendwelche Server dazwischen?), setzt aber voraus, daß die Teilnehmer HTTP/1.1 verstehen.

header("Pragma: no-cache");

Das ist ebenfalls eine HTTP/1.0-Konstruktion, allerdings war Caching nie wirklich der Sinn von "Pragma". Deshalb gibt es in HTTP/1.1 dafür auch einen eigenen Header.

Ich will auf jeden Fall Caching erzwingen.

Wie kommst Du denn auf die Idee, daß mein Browser überhaupt weiß, was Caching ist?

Viele Grüße
      Michael

--
T'Pol: I apologize if I acted inappropriately.
V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.