HTTP 快取
快取參數
Expires
驗證資源是否有編輯過,HTTP/1.0就存在,設定資源的快取策略。
協商請求/回應 Header
Client :if-Modified-Since
Server:Last-Modified
ETag
驗證資源是否有變化,若未更新,則不回傳檔案。
主要解決了 Last-Modified/If-Modified-Since 解決不了的問題
文件被修改了,但是內容沒有任何變化的時候,expires 仍會返回 304。
協商請求/回應 Header
Client : if-None-Match
Server:ETag
Pragma
HTTP/1.0就存在,與 Cache-Control 比較,優先級最高。
使用方法只有一種,Pragma: no-cache,效果和 Cache-Control 中的 no-cache 一致
Cache-Control
HTTP/1.1 中新增的属性,每個資源都可以設定回應標頭來定義策略,
取代了HTTP/1.0的快取策略。
主要用於決定是否要求更新檔案,又分為:
no-cache:表示永遠檢查快取,要求伺服器時必須以 ETag 確認是否更新,若無更新則不需回應。
no-store:表示禁止儲存快取,每次都必須向伺服器要求,適用於私人或機密資料。
可快取回應的使用者,又分為:
public:可共所有中繼設備和瀏覽器存取。例如ISP存取、CDN快取、瀏覽器快取。
private:只限單一使用者快取。
must-revalidate:表示可使用快取檔案,過期必定要去伺服器驗證是否有新檔案。
max-age:快取時限,以秒為單位,若設定的時間過期了,則必須要跟伺服器要更新後的檔案。
Vary
流程圖
思考
max-age : 0 與 Cache-Control : no-cache 的差異
參考資料
Last updated
Was this helpful?