成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

瀏覽器緩存小結(jié)

raise_yang / 959人閱讀

摘要:告知瀏覽器我希望內(nèi)容來(lái)自緩存我并不關(guān)心被緩存響應(yīng)是否是新鮮的??蛻舳苏?qǐng)求驗(yàn)證緩存的有效性。

因?yàn)樽罱嬖嚱?jīng)常會(huì)被問(wèn)到304緩存的問(wèn)題,因此在網(wǎng)上搜集了各種資料,小記一下

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

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

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

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

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

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

客戶端請(qǐng)求驗(yàn)證緩存的有效性。

If-modified-since

客戶端再次請(qǐng)求某個(gè)資源時(shí)請(qǐng)求頭會(huì)帶上這個(gè)屬性。驗(yàn)證在上次修改的時(shí)間之后是否有再次修改。

If-none-match

客戶端再次請(qǐng)求某個(gè)資源時(shí)請(qǐng)求頭會(huì)帶上這個(gè)屬性。屬性值是第一次請(qǐng)求該資源時(shí)返回的etag值
驗(yàn)證在上次修改之后是否有新的版本。

緩存命中速度

緩存命中 > 緩存再驗(yàn)證成功 > 緩存未命中 = 緩存再驗(yàn)證失?。?/p>

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

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

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

盜圖一張,整個(gè)的瀏覽器請(qǐng)求的時(shí)候緩存驗(yàn)證過(guò)程如下圖

首先看有沒(méi)有緩存,沒(méi)有的話直接請(qǐng)求服務(wù)器,這時(shí)候沒(méi)出意外的話,正常地返回應(yīng)該是200
有緩存然后看是否過(guò)期,沒(méi)過(guò)期的話就用緩存的資源了這時(shí)候不會(huì)發(fā)器請(qǐng)求
如果過(guò)期了再向服務(wù)器發(fā)起請(qǐng)求看資源是否有修改,如果沒(méi)修改則返回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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/61861.html

相關(guān)文章

  • 高性能JavaScript(文檔)

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

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

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

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

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

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

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

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

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

    pepperwang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<