Cacheable

Eine cacheable Antwort ist eine HTTP-Antwort, die zwischengespeichert werden kann. Das bedeutet, dass sie gespeichert wird, um später abgerufen und verwendet zu werden, was eine neue Anfrage an den Server spart. Nicht alle HTTP-Antworten können zwischengespeichert werden; dies sind die Voraussetzungen, damit eine HTTP-Antwort cacheable ist:

  • Die in der Anfrage verwendete Methode ist cacheable, das heißt entweder eine GET- oder eine HEAD-Methode. Eine Antwort auf eine POST- oder PATCH-Anfrage kann ebenfalls zwischengespeichert werden, wenn die Frische angezeigt wird und der Content-Location-Header gesetzt ist, dies wird jedoch selten implementiert. Zum Beispiel unterstützt Firefox dies nicht (Firefox Fehler 109553). Andere Methoden wie PUT oder DELETE sind nicht cacheable und deren Ergebnisse können nicht zwischengespeichert werden.
  • Der Statuscode der Antwort ist der Anwendungszwischenspeicherung bekannt und cacheable. Die folgenden Statuscodes sind cacheable: 200, 203, 204, 206, 300, 301, 404, 405, 410, 414, und 501.
  • Es gibt keine spezifischen Header in der Antwort, wie Cache-Control, mit Werten, die das Zwischenspeichern verhindern würden.

Beachten Sie, dass einige Anfragen mit nicht cacheable Antworten an eine bestimmte URI zuvor zwischengespeicherte Antworten von derselben URI ungültig machen können. Zum Beispiel wird eine PUT-Anfrage an /pageX.html alle zwischengespeicherten Antworten auf GET- oder HEAD-Anfragen an /pageX.html ungültig machen.

Wenn sowohl die Methode der Anfrage als auch der Status der Antwort cacheable sind, kann die Antwort auf die Anfrage zwischengespeichert werden:

http
GET /pageX.html HTTP/1.1
(…)

200 OK
(…)

Die Antwort auf eine PUT-Anfrage kann nicht zwischengespeichert werden. Darüber hinaus macht es zwischengespeicherte Daten für Anfragen an dieselbe URI mit HEAD- oder GET-Methoden ungültig:

http
PUT /pageX.html HTTP/1.1
(…)

200 OK
(…)

Das Vorhandensein des Cache-Control-Headers mit einem bestimmten Wert in der Antwort kann das Zwischenspeichern verhindern:

http
GET /pageX.html HTTP/1.1
(…)

200 OK
Cache-Control: no-cache
(…)

Siehe auch