http緩存max-age說明

緩存能加快也面的打開速度,也能減輕服務器壓力,所以 HTTP 設計了緩存機制。

HTTP 1.0 的時候是使用 Expires 的 header 來控制的,指定一個 GMT 的過期時間,但是當瀏覽器時間不準的時候就有問題了。

HTTP 1.1 的時候改爲了 max-age 的方式來設置過期時間,讓瀏覽器自己計算。並且把所有的緩存相關的控制都放到了 Cache-control 的 header 裏,像 max-age 等叫做指令。

緩存過期後,HTTP 1.1 還設計了個協商階段,會分別通過 If-None-Match 和 If-Modified-Since 的 header 帶資源的 Etag 和 Last-Modied 到服務端問下是否過期了,過期了的話就返回 200 帶上新的內容,否則返回 304,讓瀏覽器拿緩存。

public:允許代理服務器緩存資源
s-maxage:代理服務器的資源過期時間
private:不允許代理服務器緩存資源,只有瀏覽器可以緩存
immutable:就算過期了也不用協商,資源就是不變的
max-stale:過期了一段時間的話,資源也能用
stale-while-revalidate:在驗證(協商)期間,返回過期的資源
stale-if-error:驗證(協商)出錯的話,返回過期的資源
must-revalidate:不允許過期了還用過期資源,必須等協商結束
no-store:禁止緩存和協商
no-cache:允許緩存,但每次都要協商

原文地址:https://mp.weixin.qq.com/s/0P8_lnVf2_zMzIBJ20qajA

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章