Beachten Sie, dass Last-Modified
Header schwache Cache-Header sind. Die aktuelle Präferenz ist die Verwendung von Cache-Control
Headern.
Google hat einen guten Artikel dazu.
Caching optimieren
Läuft ab und Cache-Kontrolle: maximales Alter. Diese geben die „Aktualitätslebensdauer“ einer Ressource an, dh den Zeitraum, in dem der Browser die zwischengespeicherte Ressource verwenden kann, ohne zu überprüfen, ob eine neue Version vom Webserver verfügbar ist. Sie sind "starke Caching-Header", die bedingungslos gelten. Das heißt, sobald sie festgelegt und die Ressource heruntergeladen sind, gibt der Browser keine GET-Anforderungen für die Ressource aus, bis das Ablaufdatum oder das maximale Alter erreicht ist.
Last-Modified und ETag. Diese geben einige Merkmale der Ressource an, die der Browser überprüft, um festzustellen, ob die Dateien identisch sind. In der Überschrift "Zuletzt geändert" ist dies immer ein Datum. Im ETag-Header kann dies ein beliebiger Wert sein, der eine Ressource eindeutig identifiziert (Dateiversionen oder Inhalts-Hashes sind typisch). Last-Modified ist ein "schwacher" Caching-Header, bei dem der Browser eine Heuristik anwendet, um zu bestimmen, ob das Element aus dem Cache abgerufen werden soll oder nicht. (Die Heuristiken unterscheiden sich zwischen verschiedenen Browsern.) Mit diesen Headern kann der Browser jedoch seine zwischengespeicherten Ressourcen effizient aktualisieren, indem er bedingte GET-Anforderungen ausgibt, wenn der Benutzer die Seite explizit neu lädt. Bedingte GETs geben die vollständige Antwort nur zurück, wenn sich die Ressource auf dem Server geändert hat, und haben daher eine geringere Latenz als vollständige GETs.
Ich empfehle, nach Bedarf entweder Cache-Control
oder Expires
Header zu verwenden, da es sich um starke Cache-Header handelt. Einige Systeme ignorieren die zuletzt geänderten Daten.
Sie können dann ein Tool wie curl
oder http://redbot.org verwenden , um die Header zu überprüfen.
Expires
ist ein völlig unangemessener Header für Ressourcen, die nicht ablaufen. Einige Ressourcen können geändert werden, jedoch nicht zu einem bestimmten Ablaufdatum. Der Punkt von Google ist,Last-Modified
dass ein bedingtes GET erforderlich ist, währendExpires
der Browser-Cache das GET insgesamt überspringen kann.Last-Modified
Headern ohne andere Caching-Anweisungen den Cache-Zeitraum dem HTTP-Client überlässt. Wenn eine Ressource seit demLast-Modified
Datum nicht geändert wurde , sollte die Ressource als frisch betrachtet werden. Im Gegensatz dazu kann der Ursprung bei Verwendung einesExpires
oder einesCache-Control
Headers eine explizite Frischeperiode festlegen.