服務器響應瀏覽器請求時響應頭中的Cache-Control響應頭使得每個資源都可以通過 Cache-Control HTTP 頭來定義自己的緩存策略,Cache-Control 指令用來告訴我們,那個資源在什么條件下可以緩存,以及可以緩存多久。
一、Cache-Control頭參數的含義(響應頭中的Cache-Control)
1、no-cache:表示必須先與服務器確認返回的響應是否被更改,然后才能使用該響應來滿足后續對同一個網址的請求。因此,如果存在合適的驗證令牌 (ETag),no-cache 會發起往返通信來驗證緩存的響應,如果資源未被更改,可以避免下載。
2、no-store:禁止緩存任何響應,也就是說每次用戶請求資源時,都會向服務器發送一個請求,每次都會下載完整的響應。
3、public:如果響應被標記為public,即使有關聯的 HTTP 認證,甚至響應狀態碼無法正常緩存,響應也可以被緩存。
4、private:瀏覽器可以緩存private響應,但是通常只為單個用戶緩存,因此,不允許任何代理服務器對其進行緩存 。比如,用戶瀏覽器可以緩存包含用戶私人信息的 HTML 網頁,但是 CDN 不能緩存。
5、max-age:用來設置資源被緩存的最長時間(單位是秒)。
二、如何使用Cache-Control
通常,我們可以通過下圖的流程來設置合適的響應頭的Cache-Control頭。