wake-up-neo.com

Was ist der Unterschied zwischen Expires- und Cache-Control-Headern?

Was ist der Unterschied zwischen Expires und Cache-Control Header?

165
poorani

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, wohingegen Sie mit Cache-Control Max-age einen relativen Zeitraum angeben können, sodass Sie "X Stunden danach" angeben können die Seite wurde angefordert ".

HTML Cache control ist eine sehr ähnliche Frage und hat einen guten Link zu einem Caching-Tutorial, das die meisten Ihrer Fragen beantworten sollte (zB http://www.mnot.net/cache_docs/ #EXPIRES ). Zusammenfassend lässt sich sagen, dass Expires für statische Ressourcen wie Bilder und Cache-Control Empfohlen wird, wenn Sie mehr Kontrolle darüber benötigen, wie das Caching durchgeführt wird.

121
A Lee

Wenn Sie ein CDN (Cloud Delivery Network) verwenden, empfehle ich, Cache-Control mit einer maximalen Zeit in Sekunden zu verwenden. Zum Beispiel Cache-Control: max-age = 604800. Dies verhindert Anforderungsspitzen an Ihren Origin-Server: Mit "Expires Wed, 30 Oct 20xx 04:37:07 GMT" werden Sie von allen Browsern gleichzeitig angefordert.

32
user3241258

Laut diesem Artikel von Google Developers gilt HTTP-Caching :

Cache-Control-Header wurde als Teil der HTTP/1.1-Spezifikation definiert und ersetzt frühere Header (z. B. Expires), die zum Definieren von Antwort-Caching-Richtlinien verwendet wurden. Alle modernen Browser unterstützen Cache-Control, das ist also alles, was wir brauchen werden.

16
Paul

Cache-Control wurde in HTTP/1.1 definiert und teilt allen Caching-Mechanismen von Server zu Client mit, ob sie dieses Objekt cachen dürfen. Es wird in Sekunden gemessen: Cache-Control: max-age=3600.

Das Expires -Headerfeld gibt das Datum und die Uhrzeit an, nach denen die Antwort als veraltet betrachtet wird. Der Expires-Wert ist ein HTTP-Datums-Zeitstempel: Expires: Tue, 18 Jul 2017 16:07:23 GMT.

Wenn eine Antwort ein Feld Cache-Control Mit der Direktive max-age Enthält, MUSS ein Empfänger das Feld Expires ignorieren.

5
nodejh

Heroku devcenter hat einen exzellenten Artikel zu diesem Thema.

Zitiert daraus,

Während der Cache-Control-Header die clientseitige Zwischenspeicherung aktiviert und das maximale Alter einer Ressource festlegt, wird der Expires-Header verwendet, um einen bestimmten Zeitpunkt anzugeben, zu dem die Ressource nicht mehr gültig ist.

4
Devi

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

0
ray

Mit Ausnahme der privaten/öffentlichen Optionen von CC kann ich keinen Unterschied feststellen. Wenn Sie Expires wie "Zugriff plus 1 Jahr/Monat/Woche/Tag" verwenden, funktioniert dies genauso wie CC.

0
Rob