http快取機制

2021-09-23 17:02:17 字數 1834 閱讀 7007

http快取機制的作用:當設定了http快取後可以減少http請求並減少網路中的資料傳輸

,從而提公升web效能與使用者體驗。

http快取有兩種快取策略:

使用強制快取策略請求資料的過程

使用協商(對比)快取策略請求資料的過程

強制快取: 在快取資料未失效的情況下,可以直接使用快取資料,快取失效後才向伺服器發起請求,收到響應的資料後更新快取

相關的響應頭欄位

expires: 服務端返回的到期時間。即下一次請求時,請求時間小於服務端返回的到期時間,直接使用快取資料。expires是http 1.0中的字段,其時間是由服務端生成的,但是客戶端時間可能跟服務端時間有誤差,這就會導致快取命中的誤差。現在預設瀏覽器均預設使用http 1.1,使用cache-control替代。

cache-control: 常見的取值有privatepublicno-cachemax-ageno-store,預設為private

value

intro

private

客戶端可以快取

public

客戶端和**伺服器都可快取

max-age=x

快取的內容將在x秒後失效

no-cache

需要使用對比快取來驗證快取資料

no-store

所有內容都不會快取,強制快取,對比快取都不會觸發

例如谷歌瀏覽器訪問csdn首頁的一張的響應頭中的cache-control資訊

cache-control: max-age=31104000
協商快取: 需要進行比較判斷是否可以使用快取。瀏覽器第一次請求資料時,伺服器會將快取標識與資料一起返回給客戶端,客戶端將二者備份至快取資料庫中。再次請求資料時,客戶端將備份的快取標識傳送給伺服器,伺服器根據快取標識進行判斷,判斷成功後,返回304狀態碼,通知客戶端比較成功,可以使用快取資料。

快取生效時,狀態碼為304,並且報文大小和請求時間大大減少。原因:服務端在進行標識比較後,只返回header部分,通過狀態碼通知客戶端使用快取,不再需要將報文主體部分返回給客戶端。

快取標識是協商快取中的核心

last-modified:伺服器在響應請求時,告訴瀏覽器資源的最後修改時間。

if-modified-since:再次請求伺服器時,通過此欄位通知伺服器上次請求時,伺服器返回的資源最後修改時間。伺服器收到請求後發現請求頭有if-modified-since欄位,則與被請求資源的最後修改時間進行比對。

etagif-none-match,其優先順序高於last-modifiedif-modified-since

etag:伺服器響應請求時,告訴瀏覽器當前資源在伺服器的唯一標識(生成規則由伺服器決定)。

if-none-match:再次請求伺服器時,通過此欄位通知伺服器客戶段快取資料的唯一標識。

伺服器收到請求後發現有頭if-none-match則與被請求資源的唯一標識進行比對

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 快取過期...

http快取機制

首先需要了解http協議的響應頭中的幾個欄位的含義 cache control expires 該欄位表示資源的過期時間。etag 該欄位表示資源的唯一標識。last modified 該欄位表示資源的最後修改時間。有以下2個問題需要注意 為什麼優先校驗etag,後校驗last modified?因...