一、瀏覽器Network的Size欄
在瀏覽器開發(fā)者工具的 Network 的 Size 欄會(huì)出現(xiàn)的三種情況:
- from memory cache
- from disk cache
- 資源本身大小(比如:13.6K)
二授翻、三級緩存原理
1输涕、先查找內(nèi)存比藻,如果內(nèi)存中存在粹舵,從內(nèi)存中加載抑进;
2弥姻、如果內(nèi)存中未查找到南片,選擇硬盤獲取,如果硬盤中有庭敦,從硬盤中加載疼进;
3、如果硬盤中未查找到秧廉,那就進(jìn)行網(wǎng)絡(luò)請求伞广;
4、加載到的資源緩存到硬盤和內(nèi)存疼电;
三嚼锄、HTTP狀態(tài)碼及區(qū)別
200 form memory cache
不訪問服務(wù)器,一般已經(jīng)加載過該資源且緩存在了內(nèi)存當(dāng)中蔽豺,直接從內(nèi)存中讀取緩存区丑。瀏覽器關(guān)閉后,數(shù)據(jù)將不存在(資源被釋放掉了)茫虽,再次打開相同的頁面時(shí)刊苍,不會(huì)出現(xiàn)from memory cache既们。200 from disk cache
不訪問服務(wù)器,已經(jīng)在之前的某個(gè)時(shí)間加載過該資源正什,直接從硬盤中讀取緩存啥纸,關(guān)閉瀏覽器后,數(shù)據(jù)依然存在婴氮,此資源不會(huì)隨著該頁面的關(guān)閉而釋放掉下次打開仍然會(huì)是from disk cache斯棒。304 Not Modified
訪問服務(wù)器,發(fā)現(xiàn)數(shù)據(jù)沒有更新主经,服務(wù)器返回此狀態(tài)碼荣暮。然后從緩存中讀取數(shù)據(jù)。
狀態(tài) | 類型 | 說明 |
---|---|---|
200 | form memory cache | 不請求網(wǎng)絡(luò)資源罩驻,資源在內(nèi)存當(dāng)中穗酥,一般腳本、字體惠遏、圖片會(huì)存在內(nèi)存當(dāng)中 |
200 | form disk ceche | 不請求網(wǎng)絡(luò)資源砾跃,在磁盤當(dāng)中,一般非腳本會(huì)存在內(nèi)存當(dāng)中节吮,如css等 |
200 | 資源大小數(shù)值 | 從服務(wù)器下載最新資源 |
304 | 報(bào)文大小 | 請求服務(wù)端發(fā)現(xiàn)資源沒更新抽高,使用本地資源 |
一般樣式表會(huì)緩存在磁盤中,不會(huì)緩存到內(nèi)存中透绩,因?yàn)閏ss樣式加載一次即可渲染出頁面翘骂。但是腳本可能會(huì)隨時(shí)執(zhí)行,如果把腳本存在磁盤中帚豪,在執(zhí)行時(shí)會(huì)把該腳本從磁盤中提取到緩存中來碳竟,這樣的IO開銷比較大,有可能會(huì)導(dǎo)致瀏覽器失去響應(yīng)志鞍。
四瞭亮、http header
max-age:web中的文件被用戶訪問(請求)后的存活時(shí)間,是個(gè)相對的值,相對Request_time(請求時(shí)間)
Expires:Expires指定的時(shí)間根據(jù)服務(wù)器配置可能有兩種:
1、文件最后訪問時(shí)間固棚。
2、文件絕對修改時(shí)間仙蚜。
如果 max-age 和 Expires 同時(shí)存在此洲,則被 Cache-Control 的 max-age 覆蓋。last-modified:WEB 服務(wù)器認(rèn)為對象的最后修改時(shí)間委粉,比如文件的最后修改時(shí)間呜师,動(dòng)態(tài)頁面的最后產(chǎn)生時(shí)間
ETag:對象(比如URL)的標(biāo)志值,就一個(gè)對象而言贾节,文件被修改汁汗,Etag也會(huì)修改
Cache-Control:簡單理解衷畦,強(qiáng)緩存
五、幾種狀態(tài)的執(zhí)行順序
- 現(xiàn)加載一種資源(例如:圖片):
訪問-> 200 -> 退出瀏覽器
再進(jìn)來-> 200(from disk cache) -> 刷新 -> 200(from memory cache)