日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

ie如何清除瀏覽器緩存 ie清除瀏覽器緩存( 二 )

ie如何清除瀏覽器緩存 ie清除瀏覽器緩存

上圖中只是常用的消息報(bào)頭 , 下面來(lái)看下不同字段之間的關(guān)系和區(qū)別:

  1. Cache-Control 與 Expires
  2. Cache-Control:HTTP1.1 提出的特性,為了彌補(bǔ) Expires 缺陷加入的,提供了更精確細(xì)致的緩存功能 。詳細(xì)了解詳細(xì)看幾個(gè)常見(jiàn)的指令:_ max-age:功能和 Expires 類似,但是后面跟一個(gè)以“秒”為單位的相對(duì)時(shí)間,來(lái)供瀏覽器計(jì)算過(guò)期時(shí)間 。_ no-cache:提供了過(guò)期驗(yàn)證機(jī)制 。(在 Chrome 的 devtools 中勾選 Disable cache 選項(xiàng),發(fā)送的請(qǐng)求會(huì)去掉 If-Modified-Since 這個(gè) Header 。同時(shí)設(shè)置 Cache-Control:no-cache Pragma:no-cache,每次請(qǐng)求均為 200)
    • no-store:表示當(dāng)前請(qǐng)求資源禁用緩存;
    • public:表示緩存的版本可以被代理服務(wù)器或者其他中間服務(wù)器識(shí)別;
    • private:表示只有用戶自己的瀏覽器能夠進(jìn)行緩存,公共的代理服務(wù)器不允許緩存 。
  • Expires:HTTP1.0 的特性,標(biāo)識(shí)該資源過(guò)期的時(shí)間點(diǎn),它是一個(gè)絕對(duì)值 , 格林威治時(shí)間(Greenwich Mean Time, GMT),即在這個(gè)時(shí)間點(diǎn)之后,緩存的資源過(guò)期;優(yōu)先級(jí):Cache-Control 優(yōu)先級(jí)高于 Expires , 為了兼容,通常兩個(gè)頭部同時(shí)設(shè)置;瀏覽器默認(rèn)行為:其實(shí)就算 Response Header 中沒(méi)有設(shè)置 Cache-Control 和 Expires,瀏覽器仍然會(huì)緩存某些資源,這是瀏覽器的默認(rèn)行為,是為了提升性能進(jìn)行的優(yōu)化 , 每個(gè)瀏覽器的行為可能不一致,有些瀏覽器甚至沒(méi)有這樣的優(yōu)化 。
  1. Last-Modified 與 ETag
  2. Last-Modified(Response Header)與 If-Modified-Since(Request Header)是一對(duì)報(bào)文頭,屬于 http 1.0 。If-Modified-Since 是一個(gè)請(qǐng)求首部字段,并且只能用在 GET 或者 HEAD 請(qǐng)求中 。Last-Modified 是一個(gè)響應(yīng)首部字段,包含服務(wù)器認(rèn)定的資源作出修改的日期及時(shí)間 。當(dāng)帶著 If-Modified-Since 頭訪問(wèn)服務(wù)器請(qǐng)求資源時(shí) , 服務(wù)器會(huì)檢查 Last-Modified,如果 Last-Modified 的時(shí)間早于或等于 If-Modified-Since 則會(huì)返回一個(gè)不帶主體的 304 響應(yīng),否則將重新返回資源 。(注意:在 Chrome 的 devtools 中勾選 Disable cache 選項(xiàng)后,發(fā)送的請(qǐng)求會(huì)去掉 If-Modified-Since 這個(gè) Header 。)
  • ETag 與 If-None-Match 是一對(duì)報(bào)文頭,屬于 http 1.1 。ETag 是一個(gè)響應(yīng)首部字段,它是根據(jù)實(shí)體內(nèi)容生成的一段 hash 字符串,標(biāo)識(shí)資源的狀態(tài) , 由服務(wù)端產(chǎn)生 。If-None-Match 是一個(gè)條件式的請(qǐng)求首部 。如果請(qǐng)求資源時(shí)在請(qǐng)求首部加上這個(gè)字段,值為之前服務(wù)器端返回的資源上的 ETag,則當(dāng)且僅當(dāng)服務(wù)器上沒(méi)有任何資源的 ETag 屬性值與這個(gè)首部中列出的時(shí)候,服務(wù)器才會(huì)返回帶有所請(qǐng)求資源實(shí)體的 200 響應(yīng),否則服務(wù)器會(huì)返回不帶實(shí)體的 304 響應(yīng) 。
  • ETag 能解決什么問(wèn)題?
a. Last-Modified 標(biāo)注的最后修改只能精確到秒級(jí),如果某些文件在 1 秒鐘以內(nèi),被修改多次的話,它將不能準(zhǔn)確標(biāo)注文件的新鮮度;
b. 某些文件也許會(huì)周期性的更改,但是它的內(nèi)容并不改變(僅僅改變的修改時(shí)間),但 Last-Modified 卻改變了,導(dǎo)致文件沒(méi)法使用緩存;
c. 有可能存在服務(wù)器沒(méi)有準(zhǔn)確獲取文件修改時(shí)間,或者與代理服務(wù)器時(shí)間不一致等情形 。
  • 優(yōu)先級(jí):ETag 優(yōu)先級(jí)比 Last-Modified 高 , 同時(shí)存在時(shí)會(huì)以 ETag 為準(zhǔn) 。
緩存位置瀏覽器可以在內(nèi)存、硬盤(pán)中開(kāi)辟一個(gè)空間用于保存請(qǐng)求資源副本 。我們經(jīng)常調(diào)試時(shí)在 DevTools Network 里看到 Memory Cache(內(nèi)存緩存)和 Disk Cache(硬盤(pán)緩存),指的就是緩存所在的位置 。請(qǐng)求一個(gè)資源時(shí),會(huì)按照優(yōu)先級(jí)(Service Worker -> Memory Cache -> Disk Cache -> Push Cache)依次查找緩存,如果命中則使用緩存,否則發(fā)起請(qǐng)求 。這里先介紹 Memory Cache 和 Disk Cache 。

推薦閱讀