国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

瀏覽器緩存小結

raise_yang / 953人閱讀

摘要:告知瀏覽器我希望內容來自緩存我并不關心被緩存響應是否是新鮮的??蛻舳苏埱篁炞C緩存的有效性。

因為最近面試經常會被問到304緩存的問題,因此在網上搜集了各種資料,小記一下

緩存有瀏覽器緩存,代理服務器緩存,服務端緩存等,這里著重記一下瀏覽器緩存

瀏覽器第一次像服務器發起請求時,如果有緩存,瀏覽器在返回信息里面會帶上相應的緩存策略,下面介紹一下有哪些常用的緩存策略。

Expires 過期時間,這是HTTP1.0就有的??蛻舳嗽谑状握埱蠓掌髻Y源的時候服務器設置一個資源的過期時間,這個時間是絕對的,如果設置的緩存策略是這個,那么瀏覽器再次請求的時候會跟所請求資源的過期時間比對一下,如果在過期時間之內,那么從本地讀取,否則會看看是否設置了其他緩存策略,按照其他策略來,沒有的話就向服務器發起請求了。我們可以看出,這個是否發起請求跟客戶端本地時間有很大關系,如果時間設置的不對,那么緩存策略就有可能失效。

Cache-control 這一項的可選值有 max-age/no-cache/no-store/public/private/must-revalidate/s-maxage
這里面最常用到的有max-age/no-cache/no-store, max-age

max-age 會設置一個相對的過期秒數,即從首次請求算起,在這一段時間內都不會過期。
no-cache 響應是可以被緩存的,只不過再跟服務器進行新鮮度匹配之前都不會提供給客戶端使用。所以應該叫do-not-serve-from-cache-without-revalidation更好一點。
no-store 絕對禁止緩存,客戶端緩存不能復制響應,之后的每次請求都從服務器獲取資源。
must-revalidate 在跟服務器進行新鮮度驗證之前,緩存不可以把緩存的響應給瀏覽器。如果原始服務器不可用,會返回504 Gateway Timeout的錯誤。
only-if-cached 告知瀏覽器,我希望內容來自緩存,我并不關心被緩存響應,是否是新鮮的。

Last-modified
在瀏覽器第一次請求某一個資源時,服務器端的返回狀態會是200,內容是你請求的資源,同時有一個Last-Modified的屬性標記此文件在服務期端最后被修改的時間。

客戶端請求驗證緩存的有效性。

If-modified-since

客戶端再次請求某個資源時請求頭會帶上這個屬性。驗證在上次修改的時間之后是否有再次修改。

If-none-match

客戶端再次請求某個資源時請求頭會帶上這個屬性。屬性值是第一次請求該資源時返回的etag值
驗證在上次修改之后是否有新的版本。

緩存命中速度

緩存命中 > 緩存再驗證成功 > 緩存未命中 = 緩存再驗證失??;

緩存命中優先級

Cache-Control http1.1 > Expires > Pragma http1.0來決定是否 (200 from cache)

根據Last-Modified http1.0 和 ETag http1.1 來驗證是否返回 (304 Not Modified) 兩者都有,就必須同時驗證,并且兩者都滿足才會返回304;

盜圖一張,整個的瀏覽器請求的時候緩存驗證過程如下圖

首先看有沒有緩存,沒有的話直接請求服務器,這時候沒出意外的話,正常地返回應該是200
有緩存然后看是否過期,沒過期的話就用緩存的資源了這時候不會發器請求
如果過期了再向服務器發起請求看資源是否有修改,如果沒修改則返回304,如果修改了則返回200連同最新的資源一起返回,更新瀏覽器緩存副本。

參考文章

https://segmentfault.com/a/11...

https://segmentfault.com/a/11...

https://segmentfault.com/a/11...

https://my.oschina.net/leejun...

http://blog.csdn.net/pojianbi...

https://segmentfault.com/a/11...

https://segmentfault.com/a/11...

https://segmentfault.com/a/11...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/61861.html

相關文章

  • 高性能JavaScript(文檔)

    摘要:最近在全力整理高性能的文檔,并重新學習一遍,放在這里方便大家查看并找到自己需要的知識點。 最近在全力整理《高性能JavaScript》的文檔,并重新學習一遍,放在這里方便大家查看并找到自己需要的知識點。 前端開發文檔 高性能JavaScript 第1章:加載和執行 腳本位置 阻止腳本 無阻塞的腳本 延遲的腳本 動態腳本元素 XMLHTTPRequest腳本注入 推薦的無阻塞模式...

    RayKr 評論0 收藏0
  • http 緩存小結

    摘要:為了優化性能,使用緩存是一種比較常見的手段。由于篇幅原因,本篇重點講述緩存。緩存未命中達緩存的請求沒有副本可用,而被轉發給原始服務器,與緩存命中相反。協商緩存協商緩存是在用戶強緩存失敗的情況下,向服務器端進行再驗證。 為了優化性能,使用緩存是一種比較常見的手段。那么如何實現緩存以及如何避免緩存呢,都是要探討的話題??梢詮娜齻€部分:http 緩存、cookie、localStorage&...

    miguel.jiang 評論0 收藏0
  • Web站點緩存技術小結

    摘要:導言本文將列舉站點常用緩存技術的基本概念與特點,為想要了解緩存技術的讀者們提供提綱式的技術介紹。這些指令指定用于阻止緩存對請求或響應造成不利干擾的行為。參考連接網站緩存技術總結高性能網站的關鍵緩存靜態資源緩存 導言:本文將列舉web站點常用緩存技術的基本概念與特點,為想要了解web緩存技術的讀者們提供提綱式的技術介紹。 在互聯網迅速發展的今天,一個互聯網站點的請求量是十分驚人的,動輒上...

    printempw 評論0 收藏0
  • CDN小結

    摘要:二目的是一個經策略性部署的整體系統,從技術上全面解決由于網絡帶寬小用戶訪問量大網點分布不均而產生的用戶訪問網站響應速度慢的根本原因。 一、CDN全稱:??Content Delivery Network或Content Ddistribute Network,即內容分發網絡。 ??二、目的:??CDN是一個經策略性部署的整體系統,從技術上全面解決由于網絡帶寬小、用戶訪問量大、網點分布不...

    cod7ce 評論0 收藏0
  • 覽器緩存小結

    摘要:原文鏈接瀏覽器緩存瀏覽器緩存強緩存協商緩存強緩存釋義客戶端第一次問服務器要某個資源時,服務器丟還給客戶端所請求的這個資源同時,告訴客戶端將這個資源保存在本地,并且在未來的某個時點之前如果還需要這個資源,直接從本地獲取就行了,不用向服務器請求 原文鏈接:瀏覽器緩存 瀏覽器緩存 強緩存 & 協商緩存 強緩存 釋義: 客戶端第一次問服務器要某個資源時,服務器丟還給客戶端所請求的這個資源...

    pepperwang 評論0 收藏0

發表評論

0條評論

raise_yang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<