一逆皮、都有哪幾種緩存
web緩存分為很多種宅粥,比如數(shù)據(jù)庫緩存、代理服務(wù)器緩存电谣、CDN緩存秽梅,以及瀏覽器緩存。
二剿牺、瀏覽器緩存
1企垦、資源加載的順序
先查找內(nèi)存緩存、然后查找硬盤緩存晒来、然后發(fā)起網(wǎng)絡(luò)請求加載資源钞诡,并依據(jù)響應(yīng)頭進(jìn)行緩存工作
2、status code 的區(qū)別
200 memory :? 不訪問服務(wù)器湃崩,關(guān)閉瀏覽器后資源被釋放 荧降,強緩存
200 disk:不訪問服務(wù)器,關(guān)閉瀏覽器后資源依然存在攒读,強緩存
304 not modify: 訪問服務(wù)器朵诫,發(fā)現(xiàn)數(shù)據(jù)沒有更新,服務(wù)器返回此狀態(tài)碼薄扁。然后從緩存中讀取數(shù)據(jù)拗窃。協(xié)商緩存
200 : 返回資源 size 從服務(wù)器端下載最新資源
3、memory 和 disk 的使用場景
一般 js 常使用 memory泌辫,而 css 常使用 disk随夸。因為,如果把腳本存在磁盤中震放,在執(zhí)行時會把該腳本從磁盤中提取到緩存中來宾毒,這樣的IO開銷比較大,有可能會導(dǎo)致瀏覽器失去響應(yīng)殿遂。
三诈铛、瀏覽器緩存的使用原理
1乙各、meta 標(biāo)簽
<meta HTTP-EQUIV="Pragma" CONTENT="no-cache" />
有瀏覽器不兼容,所以大部分是使用響應(yīng)頭的
2幢竹、http response header?
優(yōu)先級如下:
a耳峦、ETag/If-None-Match +?Cache-Control
b、Last-Modified/If-Modified-Since +?Cache-Control
a焕毫、Expires? ?Cache-Control選擇更多蹲坷,設(shè)置也更細(xì)致,且使用了相對時間邑飒,所以比 http 1.0 中的 Expires 優(yōu)先級更高
參考:?https://segmentfault.com/a/1190000008547416
? ? ? ? ? ? http://www.cnblogs.com/lyzg/p/5125934.html