瀏覽器快取

2022-07-08 12:51:17 字數 1721 閱讀 3700

一、為什麼需要快取?(有什麼優點?)

(1)減少網路頻寬消耗

頻寬都代表著金錢。對於已快取的檔案,可以減少請求頻寬甚至無需請求網路。

(2)降低伺服器壓力

在大量使用者併發請求的情況下,伺服器的效能受到限制,此時將一些靜態資源放置在網路的多個節點,可以起到均衡負載的作用,降低伺服器的壓力。

(3)減少網路延遲,加快頁面開啟速度

通過將內容快取在本地瀏覽器或距離最近的快取伺服器(如cdn),

在不影響**互動的前提下可以大大加快**載入速度。

二、瀏覽器快取策略:

強快取:

瀏覽器在載入資源時,先根據這個資源的一些http header判斷它是否命中強快取,強快取如果命中,瀏覽器直接從自己的快取中讀取資源,不會發請求到伺服器。

協商快取:

當強快取沒有命中的時候,瀏覽器會傳送乙個請求到伺服器,伺服器端依據資源的另外一些http header驗證是否命中協商快取,如果命中,伺服器會將這個請求返回(304),但是不會返回這個資源的資料,而是告訴客戶端可以直接從快取中載入這個資源,於是瀏覽器就又會從自己的快取中去載入這個資源;若未命中請求,則將資源返回客戶端,並更新本地快取資料(返回200)。 兩者區別:強快取不會發請求到伺服器,協商快取會發請求到伺服器。

三、瀏覽器請求資源時的處理

第一次請求時:

瀏覽器後續在進行請求時:

四、強快取相關的header欄位

expires:它的值為乙個絕對時間的gmt格式的時間字串,如mon, 10 jun 2015 21:31:12 gmt

cache-control:max-age=number:主要利用該字段的max-age值來進行判斷。cache-control除了max-ag欄位外,還有下面幾個比較常用的設定值:

no-cache:不使用本地快取。會判斷是否使用協商快取。

no-store:禁止流覽器快取資料,每次使用者請求都會向伺服器傳送乙個請求。

public:可以被所有的使用者快取,包括終端使用者和cdn等中間**伺服器。

private:只能被終端使用者的瀏覽器快取,不允許cdn等中繼快取伺服器對其快取。

注意:如果cache-control與expires同時存在的話,cache-control的優先順序高於expires

五、協商快取相關的header欄位

(1)last-modified/if-modified-since

(2)etag/if-none-match

這兩組搭檔都是成對出現的,即第一次請求的響應頭帶上某個字段(last-modified或者etag),則後續請求則會帶上對應的請求字段(if-modified-since或者if-none-match),若響應頭沒有last-modified或者etag欄位,則請求頭也不會有對應的字段。

last-modified與etag是可以一起使用的,伺服器會優先驗證etag,一致的情況下,才會繼續比對last-modified,最後才決定是否返回304。

六、使用者操作行為對快取影響

快取 瀏覽器快取

瀏覽器快取 brower caching 是瀏覽器在本地磁碟對使用者最近請求過的文件進行儲存,當訪問者再次訪問同一頁面時,瀏覽器就可以直接從本地磁碟載入文件 1 瀏覽器第一次請求時,會發出一組 http 頭,用來指導瀏覽器如何進行快取。伺服器規定乙個資源是否要進行快取,主要由響應頭中的expires...

瀏覽器快取

1.為什麼使用瀏覽器快取 以前了解的動態指令碼加速,或者動態內容快取之類,他們的原理都是避免伺服器重複計算,結果仍保留在伺服器端,這樣獲取資料還得從伺服器檢索然後傳送到使用者瀏覽器,如果我們把這些結果放在瀏覽器中,就省去了伺服器的查詢和網路傳輸,瀏覽器快取很好的實現了這個功能 2.瀏覽器快取存放在哪...

瀏覽器快取

瀏覽器快取知識歸納 瀏覽器快取是提公升網頁效能的一大利器,但是,也是一把雙刃劍。利用的好網頁的效能會有大幅度提公升,伺服器的壓力也會減小。利用的不好,也會遇到很多的問題。本文結合瀏覽器快取的知識,結合真實案例進行分析,希望對讀者有所幫助。瀏覽器快取分類 瀏覽器快取分為強快取和協商快取,瀏覽器載入乙個...