瀏覽器緩存

什麼是緩存:

首先,什麼是緩存?個人理解,緩存就是一個資源副本。當咱們向服務器請求資源後,會根據狀況將資源 copy 一份副本存在本地,以方便下次讀取。它與本地存儲 localStorage 、cookie 等不一樣,本地存儲更可能是數據記錄,存儲量較小,爲了本地操做方便。而緩存更可能是爲了減小資源請求,多用於存儲文件,存儲量相對較大。瀏覽器

HTTP Cache

HTTP Cache 是咱們開發中接觸最多的緩存,它分爲強緩存和協商緩存。緩存

強緩存:直接從本地副本比對讀取,不去請求服務器,返回的狀態碼是 200。
協商緩存:會去服務器比對,若沒改變才直接讀取本地緩存,返回的狀態碼是 304。服務器

緩存的做用:

a. 減小網絡帶寬消耗cookie

b. 下降服務器壓力網絡

c. 減小網絡延遲,加快頁面打開速度blog

第一次請求(尚未緩存):資源

有緩存後的請求:開發

強緩存

Expires和Cache-Control (設置緩存何時過時,屬於響應頭)

Expires值一般是緩存的具體失效日期(時間戳),屬於HTTP1.0協議ast

Cache-Control的值是max-age = 毫秒數, 屬於HTTP1.1協議,它的優先級要比Expires要高cache-control

當緩存未過時時,下次再訪問該文件,瀏覽器不會訪問服務器,而是直接在緩存中取。

協商緩存

Last-Modified和If-Modified-Since

Last-Modified是響應頭

If-Modified-Since是請求頭

F5刷新頁面的時候,瀏覽器會忽略緩存繼續向服務器發送請求。若是此時服務器上的文件沒有被修改會返回304,讓瀏覽器直接從緩存中取,減小響應開銷。

ETag和If-None-Match

Etag是服務端給資源對應的惟一標識符,可以更加準確的控制緩存。

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息