可快取
可快取的響應是指可以被快取的 HTTP 響應,即可以被儲存以便稍後檢索和使用,從而節省向伺服器發出新的請求。並非所有 HTTP 響應都可以被快取;以下是 HTTP 響應可快取的限制條件:
- 請求中使用的方法是可快取的,即
GET或HEAD方法。如果指示了新鮮度並設定了Content-Location標頭,對POST或PATCH請求的響應也可以被快取,但這很少被實現。例如,Firefox 不支援它(Firefox bug 109553)。其他方法,如PUT或DELETE是不可快取的,它們的結果不能被快取。 - 響應的狀態碼被應用程式快取識別,並且是可快取的。以下狀態碼是可快取的:
200、203、204、206、300、301、404、405、410、414和501。 - 響應中沒有特定的標頭,例如
Cache-Control,其值會禁止快取。
請注意,某些對特定 URI 的非快取響應可能會使同一 URI 之前快取的響應失效。例如,對 /pageX.html 的 PUT 請求將使所有對 /pageX.html 的 GET 或 HEAD 請求的快取響應失效。
當請求的方法和響應的狀態都可快取時,對該請求的響應可以被快取。
http
GET /pageX.html HTTP/1.1
(…)
200 OK
(…)
對 PUT 請求的響應不能被快取。此外,它會使使用 HEAD 或 GET 方法對同一 URI 的請求的快取資料失效。
http
PUT /pageX.html HTTP/1.1
(…)
200 OK
(…)
響應中帶有特定值的 Cache-Control 標頭的存在可以阻止快取。
http
GET /pageX.html HTTP/1.1
(…)
200 OK
Cache-Control: no-cache
(…)