瀏覽器快取機制小結

2021-09-13 17:54:09 字數 1151 閱讀 4369

web效能優化措施中,合理設定瀏覽器快取是重要的優化手段之一,它可以加快頁面訪問速度和節省使用者網路頻寬等。

簡單介紹下相關概念。

expires出自http1.0,cache-control出自http1.1,同時設定兩者時,cache-control 會覆蓋 expires。
expires指定的是實際過期日期而不是秒數。但expires存在一些問題,如伺服器時間不同步或不準確。所以最好使用剩餘秒數而不是絕對時間來表達過期時間。

cache-control可設定max-age值,單位秒,指定快取過期時間。如:cache-control: max-age=3600。

etag 和 last-modified都由伺服器返回在response headers中,其中etag的優先順序比last-modified高,也就是說伺服器會優先判斷etag的值。
etag是附加到文件上的任意標籤,可能是文件的序列號或版本號,或者是文件內容的校驗等。當文件改變時etag值也會隨之改變。與etag相關的是if-none-match,當瀏覽器發起請求時,會在if-none-match字段攜帶etag的值發給伺服器;

last-modified是文件在伺服器端最後被修改的時間。與last-modified相關的是if-modified-since,當瀏覽器發起請求時,會在if-modified-since字段攜帶last-modified的值傳送給伺服器。

與強快取有關的是 expires 和 cache-control,若還在設定的時間範圍內,則命中強快取,瀏覽器不會向伺服器發起請求,直接讀取本地快取。它的返回碼是200,在控制台network的size欄可以看到form disk cache或from memory cache。

與協商快取有關的是 etag 和 last-modified,當伺服器收到if-none-match欄位和if-modified-since字段攜帶的資訊後。若匹配成功,則命中協商快取,伺服器返回304 not modified;若匹配不成功,伺服器返回200和新的資源。

瀏覽器的快取機制小結

瀏覽器快取 brower caching 是瀏覽器在本地磁碟對使用者最近請求過的文件進行儲存,當訪問者再次訪問同一頁面時,瀏覽器就可以直接從本地磁碟載入文件。我們可以通過chrome view http cache 來檢視chrome瀏覽器快取了什麼內容。推薦閱讀文章 大公司裡怎樣開發和部署前端 注...

瀏覽器快取小結

因為最近面試經常會被問到304快取的問題,因此在網上蒐集了各種資料,小記一下 快取有瀏覽器快取,伺服器快取,服務端快取等,這裡著重記一下瀏覽器快取 瀏覽器第一次像伺服器發起請求時,如果有快取,瀏覽器在返回資訊裡面會帶上相應的快取策略,下面介紹一下有哪些常用的快取策略。expires 過期時間,這是h...

瀏覽器快取機制

最近在準備優化日誌請求時遇到了一些令人疑惑的問題,比如為什麼響應頭里出現了兩個 cache control 為什麼明明設定了 no cache 卻還是發請求,為什麼多次訪問時有時請求裡帶了 etag,有時又沒有帶?等等。後來查了一些資料以及同事親自驗證,總算對這些問題有了個清晰的理解,現在整理出來以...