[toc]chrome
瀏覽器會在咱們的硬盤上開闢一塊控件來存儲資源副本,一個請求從瀏覽器緩存裏調出幾乎是當即顯現出來的,好比一張圖片。 首頁通常不會被緩存瀏覽器
備註:緩存
- 具體實現和瀏覽器有關,在chrome中測試永遠返回
200 OK
,由於請求頭中不會帶有校驗信息(無論請求頭和響應頭誰設置了)。可是Safari中,會先去驗證。- 從字面上看很容易把
no-cache
理解成‘不緩存’,但事實上表明不緩存過時的資源,緩存會向源服務器進行有效期確認後處理資源,no-store
纔是真正的不緩存資源
備註:服務器
- 在緩存週期(新鮮期)內, 請求不會去訪問服務端資源, 直接去緩存取副本資源,並返回狀態
200 from cache
;- 若是資源更新了, 緩存新內容, 返回
200
;- 過了新鮮期後,請求會帶着驗證器訪問服務器, 若是資源沒有變化, 則繼續取的是緩存數據, 並返回
304 Not Modified
, 並更新新鮮度;- 若是服務端已沒有此資源, 刪除緩存, 返回
404
;- 若是參數爲0,那麼緩存服務器一般會將請求轉向源服務器;
ETage
值相同,才返回資源。(if-None-match
與之相反)服務端相應的爲
ETag
網絡
服務端相應的爲
Last-modified
負載均衡
多半是網站管理員部署,一般使用某種形式的負載均衡器,使多個網關看起來就像是原服務器。CDN(內容分發網絡Content delivery network)爲整個或部分網絡分配網關緩存,而後把這些緩存賣給須要的網站。ide
建議更新資源的時候,更新資源名稱測試
能夠以埋點的方式檢測訪問量,設置流量很小的請求不進行緩存網站