瀏覽器緩存 from memory cache與from disk cache詳解

在chrome瀏覽器中的控制檯Network中size欄一般會有三種狀態css

1.from memory cachechrome

2.from disk cache瀏覽器

3.資源自己的大小(如:1.5k)緩存

那麼問題來了服務器

1.三種區別在哪裏;2.瀏覽器採起不一樣措施的原則是什麼;3.其餘瀏覽器的策略網絡

下面分別講述以上三個問題spa

1.三種區別在哪.net

from memory cache:字面理解是從內存中,其實也是字面的含義,這個資源是直接從內存中拿到的,不會請求服務器通常已經加載過該資源且緩存在了內存當中,當關閉該頁面時,此資源就被內存釋放掉了,再次從新打開相同頁面時不會出現from memory cache的狀況orm

from disk cache:同上相似,此資源是從磁盤當中取出的,也是在已經在以前的某個時間加載過該資源,不會請求服務器可是此資源不會隨着該頁面的關閉而釋放掉,由於是存在硬盤當中的,下次打開仍會from disk cacheblog

資源自己大小數值:當http狀態爲200是實實在在從瀏覽器獲取的資源,當http狀態爲304時該數字是與服務端通訊報文的大小,並非該資源自己的大小,該資源是從本地獲取的

2.chrome採起措施的準則

何時是from memory cache 何時是from disk cache 呢?

即哪些資源會放在內存當中,哪些資源瀏覽器會放在磁盤上呢,結果以下下表所示

統計表
狀態 類型 說明
200 form memory cache

不請求網絡資源,資源在內存當中

200 form disk ceche 不請求網絡資源,在磁盤當中
200 資源大小數值 從服務器下載最新資源
304 報文大小 請求服務端發現資源沒有更新,使用本地資源

以上是chrome在請求資源是最多見的兩種http狀態碼

因而可知樣式表通常在磁盤中,不會緩存到內存中去,由於css樣式加載一次便可渲染出網頁

可是腳本卻可能隨時會執行,若是腳本在磁盤當中,在執行該腳本須要從磁盤中取到內存當中來

這樣的IO開銷是比較大的,有可能會致使瀏覽器失去響應

3.不一樣瀏覽器策略是否一致

以上的數據及統計都是在chrome瀏覽器下進行的

在Firefox下並無from memory cache以及from disk cache的狀態展示

相同的資源在chrome下是from disk/memory cache,可是Firefox通通是304狀態碼

即Firefox下會緩存資源,可是每次都會請求服務器對比當前緩存是否更改,chrome不請求服務器,直接拿過來用

這也是爲啥chrome比較快的緣由之一吧,

固然以上是粗略的研究chrome資源的獲取策略,至於chrome如何保證資源的更新,

即何時200,何時304還須要更深刻的研究 參考:https://blog.csdn.net/garrettzxd/article/details/80684880

相關文章
相關標籤/搜索