Was passiert, wenn Sie keinen Cache-Control-Header festlegen?

11

Was passiert, wenn Sie den cache-controlHeader nicht setzen ? Gibt HTTP ein Standardverhalten an, dem Clients folgen sollen, oder liegt es an den Clients, zu entscheiden?

In Chrome wurden einige Javascript-Anforderungen angezeigt, bei denen keine cache-controlHeader angezeigt werden 200 (from disk cache). Optimiert Chrome dies?

Im IE habe ich gesehen, dass es als angezeigt wird 304 (not modified).

Wie verstehe ich das besser?

Nishant
quelle
1
"keine Cache-Header" bedeutet keinen Cache-Control-Header oder wirklich keine Cache-Header? Die Cache-Steuerung ist nicht der einzige Header, der das Caching beeinflusst. Die meisten Webserver senden zuletzt geänderte Header für statische Assets wie Javascript-Dateien.
Tim Brunnen

Antworten:

15

Wenn es keinen Cache-ControlHeader und keinen ExpiresHeader gibt, aber einen Last-ModifiedHeader (den die meisten Webserver standardmäßig für statische Assets senden), verwenden die meisten Browser die heuristische Aktualität , um zu bestimmen, wie lange dieses Asset zwischengespeichert werden soll.

Die typische Berechnung hierfür (die von RFC 7234 vorgeschlagen wird ) lautet:

(current time - last modified time) / 10

Wenn beispielsweise die zuletzt geänderte Zeit für ein Bild angibt, dass es vor 60 Tagen zuletzt geändert wurde, kann ein Browser entscheiden, dass die lokal zwischengespeicherte Version dieses Bildes 6 Tage lang angemessen verwendet werden kann, bevor nach einer neuen Version gesucht wird.

Beachten Sie, dass Sie in den meisten Fällen, wenn Sie auf Aktualisieren klicken, den Browser anweisen, eine neue Version abzurufen. In dieser Situation würde diese Logik nicht angewendet.

Tim Brunnen
quelle
Und wenn es keinen Last-ModifiedHeader gibt?
bertonc96