Uwe: (und PHP) Caching erzwingen

Hallo,
ich verwende diese Header, um ein Caching zu verhindern:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

Funktioniert soweit ganz gut, nur wie mache ich es umgekehrt?
Ich will auf jeden Fall Caching erzwingen. Wie muß ich die Header dazu umbauen?

Vielen Dank für jeden Hinweis

Uwe

  1. Hi,

    Funktioniert soweit ganz gut, nur wie mache ich es umgekehrt?

    sinnvolles Datum anbieten, alles was mit "nicht cachen" zu tun hat entfernen.

    Ich will auf jeden Fall Caching erzwingen.

    Dann musst Du Alternativen zu TCP/IP, HTTP und darin verwendeten Programmen definieren, und diese anschließend weltweit etablieren. Mit den aktuellen Varianten ist es absolute Utopie, _irgendwas_ erzwingen zu wollen. Das einzige, was Du tun kannst, ist dies: empfehlen.

    Cheatah

    --
    X-Will-Answer-Email: No
  2. 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.