Antworten:
Cache-Control
wurde in HTTP / 1.1 eingeführt und bietet mehr Optionen als Expires
. Sie können verwendet werden, um dasselbe zu erreichen, aber der Datenwert für Expires
ist ein HTTP-Datum, während Sie bei Cache-Control
max-age eine relative Zeitspanne angeben können, sodass Sie "X Stunden nach Anforderung der Seite" angeben können.
Das HTML-Cache-Steuerelement ist eine sehr ähnliche Frage und enthält einen guten Link zu einem Caching-Tutorial, das die meisten Ihrer Fragen beantworten sollte (z . B. http://www.mnot.net/cache_docs/#EXPIRES ). Zusammenfassend Expires
wird dies jedoch für statische Ressourcen wie Bilder empfohlen und Cache-Control
wenn Sie mehr Kontrolle darüber benötigen, wie das Caching durchgeführt wird.
Wenn Sie ein CDN (Cloud Delivery Network) verwenden, empfehle ich die Verwendung von Cache-Control mit einer maximalen Alterszeit in Sekunden. Zum Beispiel Cache-Control: max-age = 604800. Dies verhindert Anforderungsspitzen an Ihrem Ursprungsserver: Mit "Läuft am Mittwoch, 30. Oktober 20xx 04:37:07 GMT ab" werden Sie von allen Browsern gleichzeitig angefordert.
cache-control
. Ich verstehe also nicht, warum es bei Verwendung Anfragen geben würdeExpires:
Laut diesem Artikel von Google Developers wird HTTP-Caching :
Der Cache-Control-Header wurde als Teil der HTTP / 1.1-Spezifikation definiert und ersetzt frühere Header (z. B. Expires), die zum Definieren von Richtlinien für das Zwischenspeichern von Antworten verwendet wurden. Alle modernen Browser unterstützen Cache-Control, daher ist dies alles, was wir brauchen werden.
Die Cache-Steuerung wurde in HTTP / 1.1 definiert und teilt allen Caching-Mechanismen vom Server zum Client mit, ob sie dieses Objekt zwischenspeichern dürfen. Es wird in Sekunden gemessen : Cache-Control: max-age=3600
.
Das Expires
Header-Feld gibt das Datum / die Uhrzeit an, nach der die Antwort als veraltet gilt. Der Expires-Wert ist ein HTTP-Datumszeitstempel : Expires: Tue, 18 Jul 2017 16:07:23 GMT
.
Wenn eine Antwort ein Cache-Control
Feld mit der max-age
Direktive enthält, MUSS ein Empfänger das Expires
Feld ignorieren .
Heroku Devcenter hat einen ausgezeichneten Artikel zu diesem Thema.
Zitiert daraus,
Während der Cache-Control-Header das clientseitige Caching aktiviert und das maximale Alter einer Ressource festlegt, wird im Expires-Header ein bestimmter Zeitpunkt angegeben, zu dem die Ressource nicht mehr gültig ist.
Mit Ausnahme der privaten / öffentlichen Optionen von CC sehe ich keinen Unterschied. Bei Verwendung von Expires wie "Zugriff plus 1 Jahr / Monat / Woche / Tag" funktioniert dies genauso wie bei CC.
Wenn Sie immer noch interessiert sind, lasse ich diese Empfehlung direkt von Googles Jungs. https://developers.google.com/speed/docs/insights/LeverageBrowserCaching Sie bevorzugen Expires before als Cache-Control