當前位置:
首頁 > 最新 > 瀏覽器的緩存

瀏覽器的緩存

瀏覽器緩存跟伺服器有一個約定規則,工作規則很簡單:檢測以確保副本是最新的。瀏覽器會在硬碟專門開闢一個空間存儲資源副本作為緩存。比如我們後台的系統,如果想記住上一步操作內容,避免用戶返回上一個頁面的時候頁面內容被刷沒了。這時候這個頁面緩存起到絕對的人性化。

瀏覽器緩存分HTTP1.0和HTTP1.1,1.1引入了e-tag實體標籤。

對象更新校驗方式:

HTTP通過兩種方式驗證對象是否有更新if-non-match 和 if-modified-since。通過在Request中包含上述在請求頭header向伺服器發起詢問。當response中包含e-tag頭時,瀏覽器應該使用if-non-match來詢問;response中含有last-modified頭時,瀏覽器應用if-modified-since來進行更新詢問。當伺服器同時使用E-tag和last-modified時,瀏覽器應同時發送if-non-match和if-modified-since頭,伺服器應同時對這兩個頭進行確認,只有同時符合未更新條件方可返回304響應。

Cache控制:

用在request中的cache請求頭

Pragma: no-cache :兼容早起HTTP協議版本 如1.0+

Cache-Control: no-cache ,表示不希望得到一個緩存內容。只是希望,cache設備可能忽略。

Cache-Control: no-store,表示client與server之間的設備不能緩存響應內容,並應該刪除已有緩存。

Cache-Control: only-if-cached,表示只接受是被緩存的內容

用在response中控制cache的頭

Cache-Control: max-age=3600,用相對於接收到的時間開始可緩存多久

Cache-Control: s-maxage=3600,與上面類似,只是s-maxage一般用在cache伺服器上,並只對public緩存有效

Expires: Fri, 05 May 2018, 11:45:00 GMT 基於GMT的時間,絕對時間,但該頭容易受到本地錯誤時間影響

Cache-Control: must-revalidate 該頭表示內容可以被緩存但每次必須詢問是否有更新。

各種cache-control頭值和意義:

last-modified/e-tag 和cache-control/expires作用不一樣,如果檢測到本地的緩存在有效期內,直接使用本地緩存。兩者要是一起使用,cache-control/expires優先順序高於last-modified/e-tag ,這兩者可以一起使用,利用伺服器返回碼304的配合,從而減少響應的開銷,提高性能。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 短途小巷 的精彩文章:

TAG:短途小巷 |