可緩存
可緩存的響應是可被緩存的 HTTP 響應,它被存儲以供稍後檢索和使用,從而將新的請求保存在伺服器。不是所有的 HTTP 響應都可以被緩存,可以被緩存的 HTTP 響應需滿足如下列條件:
- 請求中使用的方法本身是可以被緩存的,如
GET
或HEAD
方法。如果下達了新的指示,響應POST
方法也可以被緩存,但這種實施方式極爲罕見。其他方法,如:PUT
或DELETE
都不可以被緩存,同樣他們的處理結果也不可以。 - 應用程式是會緩存已知的響應的狀態碼,并且被認爲是可緩存的。這些可緩存的狀態碼如下:
200
、203
、204
、206
、300
、301
、404
、405
、410
、414
和501
。 - 響應中沒有指定的頭部,如
Cache-Control
,它可以阻止緩存。
請注意一些不緩存請求/響應到指定的 URI 可能會導致相同 URI 上以前的緩存響應失效。例如,PUT
到 pageX.html 將使相同 URI 下所有的 GET
或 HEAD
請求緩存失效。
同樣的,如果請求的方法和響應的狀態都可以被緩存,那請求的響應也都將可以被緩存:
GET /pageX.html HTTP/1.1 (…) 200 OK (…)
PUT
請求不能被緩存. 此外,它還將導致所有來源為 HEAD
或 GET
相同的 URI 緩存數據無效 :
PUT /pageX.html HTTP/1.1 (…) 200 OK (…)
指定的 Cache-Control
頭部在響應中可以阻止緩存:
GET /pageX.html HTTP/1.1 (…) 200 OK Cache-Control: no-cache (…)
了解更多
基礎知識
- HTTP 規範中 可緩存 的定義。