摘要:告訴瀏覽器在過(guò)期時(shí)間前瀏覽器可以直接從瀏覽器緩存取數(shù)據(jù),而無(wú)需再次請(qǐng)求。二協(xié)商緩存階段基于客戶端和服務(wù)器端的協(xié)商緩存機(jī)制需要與共同使用,如果配置了且沒有過(guò)期,就不會(huì)使用過(guò)期了之后,才會(huì)使用。
瀏覽器緩存
瀏覽器緩存分為幾個(gè)階段:
瀏覽器緩存階段 一.強(qiáng)制緩存階段1.cache-control: 決定了瀏覽器端和服務(wù)器端緩存的策略,可以出現(xiàn)在響應(yīng)頭response header中,或者 請(qǐng)求頭 request header中
max-age:指定緩存的最大有效時(shí)間,eg:cache-control:max-age=315360000,注意與
expires做區(qū)分(與cache-control平級(jí)),max-age優(yōu)先級(jí)高于 expires,這個(gè)屬性時(shí)HTTP1.1中新增的屬性
s-maxage:指定public的緩存,緩存設(shè)備有很多,不僅僅瀏覽器是緩存設(shè)備,在整個(gè)網(wǎng)絡(luò)中,可能會(huì)存在代理服務(wù)器,CDN屬于public緩存設(shè)備,因?yàn)榭梢远嘤脩粼L問并讀取信息;什么是private緩存呢,指的是只是你個(gè)人訪問的設(shè)備,瀏覽器就屬于private緩存設(shè)備,eg:s-maxage=31536000;他的優(yōu)先級(jí)高于max-age,只能設(shè)定public的緩存設(shè)備
private
public
no-cache:錯(cuò)誤理解:不使用緩存;no-cache指的是不管本地是否設(shè)置了max-age(即忽略本地瀏覽器端的緩存策略),都要向服務(wù)器端發(fā)送請(qǐng)求,由服務(wù)器端來(lái)判斷緩存情況
no-store:完全不使用任何的緩存策略,不管是服務(wù)器端還是瀏覽器端的
2.expires:Thu, 14 Mar 2019 17:29:17 GMT,這個(gè)屬性時(shí)HTTP1.0中配置,
緩存過(guò)期時(shí)間,用來(lái)指定資源到期時(shí)間,是服務(wù)器端具體的時(shí)間點(diǎn)。
告訴瀏覽器在過(guò)期時(shí)間前瀏覽器可以直接從瀏覽器緩存取數(shù)據(jù),而無(wú)需再次請(qǐng)求。
二.協(xié)商緩存階段基于客戶端和服務(wù)器端的協(xié)商緩存機(jī)制
1.last-modified
last-modified - response header
if-modified-since - request header
需要與cache-control共同使用,如果配置了max-age 且沒有過(guò)期,就不會(huì)使用last-modified;過(guò)期了之后,才會(huì)使用last-modified。
last-modified 缺點(diǎn):
服務(wù)器端不能精確獲取 文件變更時(shí)間時(shí)
文件修改時(shí)間改了,文件內(nèi)容沒有變
以秒為單位,如果是ms內(nèi)修改了文件,就體現(xiàn)不出來(lái)
2.ETag
文檔內(nèi)容的hash值
ETag ---- response header
if-None-Match ----request header
etag優(yōu)先級(jí)高于last-modified
狀態(tài)碼解析
200(from cache): 瀏覽器端緩存,cache-control:max-age=315360000
或者expires起作用
304: 服務(wù)器端緩存,last-modified 或者 etag 起作用
200:瀏覽器端沒有緩存,或者服務(wù)器端緩存失效,或者用戶點(diǎn)擊了ctrl+F5 瀏覽器直接從服務(wù)器端下載最新的數(shù)據(jù)
注意:Chrome瀏覽器,手動(dòng)點(diǎn)擊刷新按鈕都會(huì) 在請(qǐng)求頭中,添加 chche-control:max-age=0,這樣就肯定不會(huì)使用瀏覽器端的緩存!
更加詳細(xì),請(qǐng)參考:緩存詳解
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/62071.html
整個(gè)過(guò)程大體描述如下,其中前兩個(gè)步驟是在本機(jī)完成的,后8個(gè)步驟涉及到真正的域名解析服務(wù)器: 瀏覽器會(huì)檢查緩存中有沒有這個(gè)域名對(duì)應(yīng)的解析過(guò)的IP地址,如果緩存中有,這個(gè)解析過(guò)程就結(jié)束。瀏覽器緩存域名也是有限制的,不僅瀏覽器緩存大小有限制,而且緩存的時(shí)間也有限制,通常情況下為幾分鐘到幾小時(shí)不等,域名被緩存的時(shí)間限制可以通過(guò)TTL屬性來(lái)設(shè)置。這個(gè)緩存時(shí)間太長(zhǎng)和太短都不太好,如果時(shí)間太長(zhǎng),一旦域名被解析...
摘要:二目的是一個(gè)經(jīng)策略性部署的整體系統(tǒng),從技術(shù)上全面解決由于網(wǎng)絡(luò)帶寬小用戶訪問量大網(wǎng)點(diǎn)分布不均而產(chǎ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ǎng)點(diǎn)分布不...
摘要:文件如果在本機(jī)中仍然無(wú)法完成域名的解析,則會(huì)真正請(qǐng)求域名服務(wù)器來(lái)解析這個(gè)域名了。若沒有命中,就直接到域名服務(wù)器請(qǐng)求解析。是國(guó)際頂級(jí)域名服務(wù)器,如等,全球只有臺(tái)左右。本地域名服務(wù)器再向上一步返回的服務(wù)器發(fā)送請(qǐng)求。 博文參考 http://www.hackdig.com/ http://www.hackdig.com/07/hack-47475.htm http://www.cnblogs...
摘要:文件如果在本機(jī)中仍然無(wú)法完成域名的解析,則會(huì)真正請(qǐng)求域名服務(wù)器來(lái)解析這個(gè)域名了。若沒有命中,就直接到域名服務(wù)器請(qǐng)求解析。是國(guó)際頂級(jí)域名服務(wù)器,如等,全球只有臺(tái)左右。本地域名服務(wù)器再向上一步返回的服務(wù)器發(fā)送請(qǐng)求。 博文參考 http://www.hackdig.com/ http://www.hackdig.com/07/hack-47475.htm http://www.cnblogs...
閱讀 792·2021-11-09 09:47
閱讀 1585·2019-08-30 15:44
閱讀 1152·2019-08-26 13:46
閱讀 2116·2019-08-26 13:41
閱讀 1280·2019-08-26 13:32
閱讀 3784·2019-08-26 10:35
閱讀 3534·2019-08-23 17:16
閱讀 463·2019-08-23 17:07