Ich möchte einen minimalen Satz von Headern finden, die mit "allen" Caches und Browsern funktionieren (auch bei Verwendung von HTTPS !).
Auf meiner Website stehen drei Arten von Ressourcen zur Verfügung:
(1) Für immer zwischenspeicherbar (öffentlich / für alle Benutzer gleich)
Beispiel: 0A470E87CC58EE133616F402B5DDFE1C.cache.html ( automatisch von GWT generiert )
Diesen Dateien wird automatisch ein neuer Name zugewiesen, wenn sie den Inhalt ändern (basierend auf dem MD5).
Sie sollten so weit wie möglich zwischengespeichert werden, auch wenn HTTPS verwendet wird (also nehme ich an, ich sollte festlegen
Cache-Control: public
, insbesondere für Firefox?)Sie sollten nicht verlangen, dass der Client einen Roundtrip zum Server durchführt, um zu überprüfen, ob sich der Inhalt geändert hat.
(2) Gelegentliche Änderungen (öffentlich / gleich für alle Benutzer)
Beispiele: index.html, mymodule.nocache.js
Diese Dateien ändern ihren Inhalt, ohne die URL zu ändern, wenn eine neue Version der Site bereitgestellt wird.
Sie können zwischengespeichert werden, benötigen jedoch wahrscheinlich eine Hin- und Rückfahrt, um jedes Mal erneut validiert zu werden.
(3) Individuell für jede Anfrage (privat / benutzerspezifisch)
Beispiel: JSON-Antworten
- Diese Ressourcen sollten unter keinen Umständen unverschlüsselt auf der Festplatte zwischengespeichert werden. (Außer vielleicht habe ich ein paar spezifische Anfragen, die zwischengespeichert werden könnten.)
Ich habe eine allgemeine Vorstellung davon, welche Header ich wahrscheinlich für jeden Typ verwenden würde, aber es gibt immer etwas, das mir fehlen könnte.