請求頭:瀏覽器向伺服器傳送請求的資料,資源
響應頭:伺服器向瀏覽器相應資料,告訴瀏覽器我是誰,我要怎麼做。如,我是nginx,給你的資源是正確的200 還是錯誤的404,我告訴你需要快取多久。
快取優先順序: pragma → cache-control → expires → etag → last-modified
http1.0: pragma(已廢棄), expires
http快取可以分為兩類: 強制快取,協商快取
強制快取:expires, cache-control
1). expires: 快取過期時間,gmt時間,以客戶端時間作為參考
2). cache-control: 相對時間,屬性值分為:
private:僅允許客戶端快取
public:客戶端和**伺服器都可以快取
max-age=***:快取內容將於***秒後失效
no-cache:需要使用協商快取來驗證快取資料
no-store:所有內容都不會快取,強制快取、協商快取都不會觸發
協商快取:last-modified, etag
1)last-modified:定義上一次修改時間,再次請求時帶請求頭if-modified-since,與伺服器進行對比
2)etag:加密字串,再次請求時帶請求頭if-none-match,與伺服器對比
對於強制快取,伺服器通知瀏覽器乙個快取時間,在快取時間內,下次請求直接用快取,不在時間內則執行協商快取策略。
對於協商策略,將快取資訊中的etag和last-modified通過請求傳送給伺服器,有伺服器校驗,返回304狀態碼時,瀏覽器直接使用快取。
瀏覽器第一次請求:
瀏覽器請求 -> 無快取 -> 向web伺服器請求 -> 請求響應,快取協商 -> 呈現
瀏覽器再次請求:
常見的請求頭:
常見的響應頭:
web快取之 http快取機制
一 web快取可以分為資料庫快取 伺服器快取 瀏覽器快取。二 http快取是通過頭資訊控制快取。a.分為強快取和協商快取兩種。b.強快取如果命中,則不需要和伺服器發生互動。c.協商快取不管是否命中,都要和伺服器發生互動。d.強快取的優先順序高於協商快取。三 強快取。a.可以理解為無需驗證的快取策略。...
Http快取機制
快取快取,就是把需要的東西存起來,不需要每次都去請求。主要目的減小伺服器壓力,放到客戶端上來講,還利於節省流量,還能流暢的把ui顯示出來,提高了使用者體驗。對於http快取來講,主要的就是校驗快取的有效性,也就是新鮮度。如果客戶端不能及時響應服務端的資料變化,快取一直不能被更新,那不就是得不償失了?...
HTTP 快取機制
基於 header的示例 content length 3534http快取策略分為 1 快取策略 cache control 頭里的 public private no cache max age no store 其中no store為不儲存,no cache 0秒的max age 2 快取過期...