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 eineHEAD
-Methode. Eine Antwort auf einePOST
- oderPATCH
-Anfrage kann ebenfalls zwischengespeichert werden, wenn die Frische angezeigt wird und derContent-Location
-Header gesetzt ist, dies wird jedoch selten implementiert. Zum Beispiel unterstützt Firefox dies nicht (Firefox Fehler 109553). Andere Methoden wiePUT
oderDELETE
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
, und501
. - 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:
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:
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:
GET /pageX.html HTTP/1.1
(…)
200 OK
Cache-Control: no-cache
(…)