HTTP - Caching

HTTP wird normalerweise für verteilte Informationssysteme verwendet, bei denen die Leistung durch die Verwendung von Antwortcaches verbessert werden kann. Das HTTP / 1.1-Protokoll enthält eine Reihe von Elementen, mit denen das Caching funktioniert.

Das Ziel des Caching in HTTP / 1.1 besteht darin, in vielen Fällen das Senden von Anforderungen zu vermeiden und in vielen anderen Fällen das Senden vollständiger Antworten zu vermeiden.

Die grundlegenden Cache-Mechanismen in HTTP / 1.1 sind implizite Anweisungen für Caches, in denen vom Server Ablaufzeiten und Validatoren angegeben werden. Wir nehmen dasCache-Control Header für diesen Zweck.

Das Cache-ControlMit dem Header kann ein Client oder Server eine Vielzahl von Anweisungen in Anforderungen oder Antworten übertragen. Diese Anweisungen überschreiben normalerweise die Standard-Caching-Algorithmen. Die Caching-Anweisungen werden in einer durch Kommas getrennten Liste angegeben. Zum Beispiel:

Cache-control: no-cache

Die folgenden Cache-Anforderungsanweisungen können vom Client in seiner HTTP-Anforderung verwendet werden:

SN Cache-Anforderungsrichtlinie und Beschreibung
1 no-cache

Ein Cache darf die Antwort nicht verwenden, um eine nachfolgende Anforderung ohne erfolgreiche erneute Validierung mit dem Ursprungsserver zu erfüllen.

2 no-store

Der Cache sollte nichts über die Clientanforderung oder die Serverantwort speichern.

3 max-age = seconds

Gibt an, dass der Client bereit ist, eine Antwort zu akzeptieren, deren Alter die angegebene Zeit in Sekunden nicht überschreitet.

4 max-stale [ = seconds ]

Zeigt an, dass der Client bereit ist, eine Antwort zu akzeptieren, deren Ablaufzeit überschritten wurde. Wenn Sekunden angegeben werden, darf diese nicht länger als diese Zeit abgelaufen sein.

5 min-fresh = seconds

Zeigt an, dass der Client bereit ist, eine Antwort zu akzeptieren, deren Frische-Lebensdauer nicht unter dem aktuellen Alter zuzüglich der angegebenen Zeit in Sekunden liegt.

6 no-transform

Konvertiert den Entity-Body nicht.

7 only-if-cached

Ruft keine neuen Daten ab. Der Cache kann ein Dokument nur senden, wenn es sich im Cache befindet, und sollte sich nicht an den Ursprungsserver wenden, um festzustellen, ob eine neuere Kopie vorhanden ist.

Die folgenden Cache-Antwortanweisungen können vom Server in seiner HTTP-Antwort verwendet werden:

SN Cache-Antwortrichtlinie und Beschreibung
1 public

Gibt an, dass die Antwort von einem beliebigen Cache zwischengespeichert werden kann.

2 private

Gibt an, dass die gesamte oder ein Teil der Antwortnachricht für einen einzelnen Benutzer bestimmt ist und nicht von einem gemeinsam genutzten Cache zwischengespeichert werden darf.

3 no-cache

Ein Cache darf die Antwort nicht verwenden, um eine nachfolgende Anforderung ohne erfolgreiche erneute Überprüfung mit dem Ursprungsserver zu erfüllen.

4 no-store

Der Cache sollte nichts über die Clientanforderung oder die Serverantwort speichern.

5 no-transform

Konvertiert den Entity-Body nicht.

6 must-revalidate

Der Cache muss den Status veralteter Dokumente überprüfen, bevor er verwendet wird. Abgelaufene Dokumente sollten nicht verwendet werden.

7 proxy-revalidate

Die Proxy-Revalidate-Direktive hat dieselbe Bedeutung wie die Must-Revalidate-Direktive, außer dass sie nicht für nicht gemeinsam genutzte Benutzeragenten-Caches gilt.

8 max-age = seconds

Gibt an, dass der Client bereit ist, eine Antwort zu akzeptieren, deren Alter die angegebene Zeit in Sekunden nicht überschreitet.

9 s-maxage = seconds

Das in dieser Direktive angegebene Höchstalter überschreibt das in der Direktive für das Höchstalter oder im Expires-Header angegebene Höchstalter. Die s-maxage-Direktive wird von einem privaten Cache immer ignoriert.