Nachdem ich viel gesucht, alle Tutorials gelesen und einige Fragen gestellt habe, ist es mir schließlich gelungen, (zumindest denke ich) korrekt auf "if-none-match" und "if-modified" seit HTTP-Anfragen zu antworten.
Um eine kurze Zusammenfassung zu machen, das ist, was ich auf alle Seiten cachefähig mache:
%Vor%Außerdem hat jede Seite eine eigene URL (für jede Sprache). Zum Beispiel wird "index.php" unter der URL "/ en / home" in Englisch und "/ fr / accueil" in Französisch geliefert.
Mein großes Problem war die Antwort auf "304 Not Modified" auf "if-none-match" und "if-modified-since", da HTTP nur bei Bedarf anfordert .
Der beste Doc, den ich gefunden habe, ist: Ссылка
Und das ist die Implementierung, die ich daraus gemacht habe (dieser Codeabschnitt heißt auf Seiten, die zwischengespeichert werden können, ASAP):
%Vor%Meine Frage ist zweifach:
BTW, ich benutze nur PHP 5.1.0+ (ich unterstütze keine niedrigeren Versionen als das).
Edit: Added Bounty ... Ich erwarte Qualität Antwort. Antworte nicht, wenn du etwas rätst!
Hier ist die Funktion, die helfen könnte:
%Vor%Ich schlage vor, dass Sie einen Blick auf den folgenden Artikel werfen: Ссылка
Aktualisierung:
[AlexV] Ist es sogar möglich, if-none-match UND if-modified-da gleichzeitig zu erhalten?
Sie können definitiv beide festgelegt haben. Jedoch:
Wenn keine der Entity-Tags übereinstimmt, dann kann der Server die angeforderte Methode so ausführen, als ob das If-None-Match-Header-Feld nicht existiert, aber MÜSSEN auch alle If-Modified-Since-Header-Felder in der. ignorieren anfordern. Das heißt, wenn keine Entity-Tags übereinstimmen, dann darf der Server KEINE 304 (Not Modified) Antwort zurückgeben.
Beispielwerte (W steht für "schwach"; lesen Sie mehr in RFC2616 # 13.3. 3 ):
%Vor%Als Sonderfall entspricht der Wert "*" einer beliebigen aktuellen Entität der Ressource.
Tags und Links php http header caching http-headers