瀏覽器快取

2022-07-05 04:42:14 字數 1129 閱讀 1765

一. 強快取和協商快取

第一次請求資源時,會根據http頭部資訊判斷是否快取;

第二次請求資源時,會先判斷是否命中強快取(cache-control和expires),如果是則直接獲取資源,本次請求不會與伺服器進行通訊;如果沒有命中,則會攜帶第一次請求時返回有關快取的頭部資訊(last-modified/if-modified-since 和 etag/if-none-match);若命中則直接獲取快取資源,否則獲取新資源。

狀態碼與伺服器通訊

強快取(本地快取)

200(from cache)

否,直接取快取

協商快取

304(not modified)

是,通過伺服器判斷快取是否可用

二. 強快取header

expires:http1.0,gmt格式的時間字串,快取有效的截止時間;

cache-control:max-age=10000:http1.1,相對值,資源第一次請求時間和設定的有效期計算出乙個資源過期時間,再拿這個時間和當前時間比較;

還有幾個常用值no-cache(不使用強快取),no-store(禁止快取資料),public(可被所有使用者快取),private(只允許終端使用者快取);

cache-control優先順序高於expires;

三. 協商快取header

第一次請求響應頭帶上last-modified/etag,則後續請求會帶上if-modified/if-none-match;

last-modified:gmt格式,最後修改時間;

if-modified-since:也是gmt格式,判斷而這是否一樣;如果命中快取,則返回304,並且不會返回資源內容,不會返回last-modify;

etag/if-none-match:伺服器生成的唯一標識字串,與last-modified不同的是,當伺服器返回304時,由於etag重新生成過,所以頭部資訊還是會把這個etag返回,即使沒變化;

為什麼有了last-modified還要etag:一些檔案週期性更改,但內容不變;有些檔案修改頻繁,1s內修改多次;某些伺服器不能精確得到檔案最後修改時間;etag優先於last-modified驗證。

四. cookie & session & localstorage & sessionstorage

快取 瀏覽器快取

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

瀏覽器快取

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

瀏覽器快取

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