成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

瀏覽器緩存小結(jié)

raise_yang / 1006人閱讀

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

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

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

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

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

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

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

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

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

If-modified-since

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

If-none-match

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

緩存命中速度

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

緩存命中優(yōu)先級

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

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

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

首先看有沒有緩存,沒有的話直接請求服務(wù)器,這時候沒出意外的話,正常地返回應(yīng)該是200
有緩存然后看是否過期,沒過期的話就用緩存的資源了這時候不會發(fā)器請求
如果過期了再向服務(wù)器發(fā)起請求看資源是否有修改,如果沒修改則返回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...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/61861.html

相關(guān)文章

  • 高性能JavaScript(文檔)

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

    RayKr 評論0 收藏0
  • http 緩存小結(jié)

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

    miguel.jiang 評論0 收藏0
  • Web站點緩存技術(shù)小結(jié)

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

    printempw 評論0 收藏0
  • CDN小結(jié)

    摘要:二目的是一個經(jīng)策略性部署的整體系統(tǒng),從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小用戶訪問量大網(wǎng)點分布不均而產(chǎn)生的用戶訪問網(wǎng)站響應(yīng)速度慢的根本原因。 一、CDN全稱:??Content Delivery Network或Content Ddistribute Network,即內(nèi)容分發(fā)網(wǎng)絡(luò)。 ??二、目的:??CDN是一個經(jīng)策略性部署的整體系統(tǒng),從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小、用戶訪問量大、網(wǎng)點分布不...

    cod7ce 評論0 收藏0
  • 覽器緩存小結(jié)

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

    pepperwang 評論0 收藏0

發(fā)表評論

0條評論

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