瀏覽器快取、Cache-Control
阿新 • • 發佈:2018-12-19
為什麼需要瀏覽器快取?
客戶端和瀏覽器建立連線時需要消耗時間,客戶端和伺服器之間進行多次往返通訊才能獲得完整的響應,這拖延了瀏覽器可以使用和處理內容的時間。這就增加了訪問伺服器的資料和資源的成本,因此利用瀏覽器的快取機制重用以前獲取的資料就變成了效能優化時需要考慮的事情。
說到瀏覽器中的快取機制,其實就相當於HTTP協議定義的快取機制。為每個資源指定一個明確的快取策略,用以定義資源是否可以快取,由誰來快取,可以快取多久,並且在快取時間到期時如何有效地重新驗證。
瞭解cache-control
Cache-Control頭引數的含義(響應頭中的Cache-Control)
1 no-cache : 表示必須先與伺服器確認返回的響應是否被更改,如果資源未被更改,可以避免下載。 . 2 no-store : 禁止快取任何響應,也就是說每次請求資源時都下載完整的響應。 . 3 public : 如果響應被標記為public,即使有關聯的 HTTP 認證,甚至響應狀態碼無法正常快取,響應也可以被快取。 . 4 private :瀏覽器可以快取private響應,但是通常只為單個使用者快取,因此,不允許任何代理伺服器對其進行快取。比如,使用者瀏覽器可以快取包含使用者私人資訊的 HTML 網頁,但是 CDN 不能快取。 . 5 max-age : 用來設定資源被快取的最長時間(單位是秒)。
對於已快取的的響應,如何更新?
當用戶已經快取了響應(過期時間還早),但是伺服器上對應的資源被修改了。那麼此時我們需要快取過的使用者更新快取。 做法:我們可以在資源的內容更改後,更改資源的網址,強制使用者下載新響應。 比如在修改了css樣式表,再在資源連結後新增引數: 注:該圖片來源於網路