可緩存

可緩存的響應是可被緩存的 HTTP 響應,它被存儲以供稍後檢索和使用,從而將新的請求保存在伺服器。不是所有的 HTTP 響應都可以被緩存,可以被緩存的 HTTP 響應需滿足如下列條件:

  • 請求中使用的方法本身是可以被緩存的,如 GETHEAD 方法。如果下達了新的指示,響應 POST 方法也可以被緩存,但這種實施方式極爲罕見。其他方法,如:PUTDELETE 都不可以被緩存,同樣他們的處理結果也不可以。
  • 應用程式是會緩存已知的響應的狀態碼,并且被認爲是可緩存的。這些可緩存的狀態碼如下:200203204206300301404405410414501
  • 響應中沒有指定的頭部,如 Cache-Control,它可以阻止緩存。

請注意一些不緩存請求/響應到指定的 URI 可能會導致相同 URI 上以前的緩存響應失效。例如,PUT 到 pageX.html 將使相同 URI 下所有的 GETHEAD 請求緩存失效。

同樣的,如果請求的方法和響應的狀態都可以被緩存,那請求的響應也都將可以被緩存:

GET /pageX.html HTTP/1.1
(…)

200 OK
(…)

PUT 請求不能被緩存. 此外,它還將導致所有來源為 HEADGET 相同的 URI 緩存數據無效 :

PUT /pageX.html HTTP/1.1
(…)

200 OK
(…)

指定的 Cache-Control 頭部在響應中可以阻止緩存:

GET /pageX.html HTTP/1.1
(…)

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

了解更多

基礎知識

技術資訊