国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
瀏覽器緩存機(jī)制 - Learning Correcting Improving - Jav...
2010-03-02

瀏覽器緩存機(jī)制

文章分類(lèi):Web前端

Cache-Control

Cache-Control 是最重要的規(guī)則。這個(gè)字段用于指定所有緩存機(jī)制在整個(gè)請(qǐng)求/響應(yīng)鏈中必須服從的指令。這些指令指定用于阻止緩存對(duì)請(qǐng)求或響應(yīng)造成不利干擾的行為。這些指令通常覆蓋默認(rèn)緩存算法。緩存指令是單向的,即請(qǐng)求中存在一個(gè)指令并不意味著響應(yīng)中將存在同一個(gè)指令。

cache-control 定義是:Cache-Control = "Cache-Control" ":" cache-directive。表 1 展示了適用的值。


表 1. 常用 cache-directive 值

Cache-directive 說(shuō)明
public 所有內(nèi)容都將被緩存
private 內(nèi)容只緩存到私有緩存中
no-cache 所有內(nèi)容都不會(huì)被緩存
no-store 所有內(nèi)容都不會(huì)被緩存到緩存或 Internet 臨時(shí)文件中
must-revalidation/proxy-revalidation 如果緩存的內(nèi)容失效,請(qǐng)求必須發(fā)送到服務(wù)器/代理以進(jìn)行重新驗(yàn)證
max-age=xxx (xxx is numeric) 緩存的內(nèi)容將在 xxx 秒后失效

表 2 表明在不同的情形下,瀏覽器是將請(qǐng)求重新發(fā)送到服務(wù)器還是使用緩存的內(nèi)容。


表 2. 對(duì) cache-directive 值的瀏覽器響應(yīng)

Cache-directive 打開(kāi)一個(gè)新的瀏覽器窗口 在原窗口中單擊 Enter 按鈕 刷新 單擊 Back 按鈕
public 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面
private 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 第一次,瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器;此后,瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面
no-cache/no-store 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器
must-revalidation/proxy-revalidation 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 第一次,瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器;此后,瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面
max-age=xxx (xxx is numeric) xxx 秒后,瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 xxx 秒后,瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器 xxx 秒后,瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器

Cache-Control 是關(guān)于瀏覽器緩存的最重要的設(shè)置,因?yàn)樗采w其他設(shè)置,比如 Expires 和 Last-Modified。另外,由于瀏覽器的行為基本相同,這個(gè)屬性是處理跨瀏覽器緩存問(wèn)題的最有效的方法。

失效

Expires 頭部字段提供一個(gè)日期和時(shí)間,響應(yīng)在該日期和時(shí)間后被認(rèn)為失效。失效的緩存條目通常不會(huì)被緩存(無(wú)論是代理緩存還是用戶代理緩存)返回,除非首先通過(guò)原始服務(wù)器(或者擁有該實(shí)體的最新副本的中介緩存)驗(yàn)證。(注意:cache-control max-age 和 s-maxage 將覆蓋 Expires 頭部。)

Expires 字段接收以下格式的值:“Expires: Sun, 08 Nov 2009 03:37:26 GMT”。如果查看內(nèi)容時(shí)的日期在給定的日期之前,則認(rèn)為該內(nèi)容沒(méi)有失效并從緩存中提取出來(lái)。反之,則認(rèn)為該內(nèi)容失效,緩存將采取一些措施。表 3-6 表明針對(duì)不同用戶操作的不同瀏覽器的行為。


表 3. 當(dāng)用戶打開(kāi)一個(gè)新的瀏覽器窗口時(shí)的失效操作

  Firefox 3.5 IE 8 Chrome 3 Safari 4
內(nèi)容沒(méi)有失效 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面
內(nèi)容失效 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200


表 4. 當(dāng)用戶在原始瀏覽器窗口中單擊 Enter 按鈕時(shí)的失效操作

  Firefox 3.5 IE 8 Chrome 3 Safari 4
內(nèi)容沒(méi)有失效 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304
內(nèi)容失效 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200


表 5. 當(dāng)用戶按 F5 鍵刷新頁(yè)面時(shí)的失效操作

  Firefox 3.5 IE 8 Chrome 3 Safari 4
內(nèi)容沒(méi)有失效 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304
內(nèi)容失效 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200


表 6. 當(dāng)用戶單擊 Back 或 Forward 按鈕時(shí)的失效操作

  Firefox 3.5 IE 8 Chrome 3 Safari 4
內(nèi)容沒(méi)有失效 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面
內(nèi)容失效 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200

注意:所有瀏覽器都假定為使用默認(rèn)設(shè)置運(yùn)行。

Last-Modified/E-Tag

Last-Modified 實(shí)體頭部字段值通常用作一個(gè)緩存驗(yàn)證器。簡(jiǎn)單來(lái)說(shuō),如果實(shí)體值在 Last-Modified 值之后沒(méi)有被更改,則認(rèn)為該緩存條目有效。ETag 響應(yīng)頭部字段值是一個(gè)實(shí)體標(biāo)記,它提供一個(gè) “不透明” 的緩存驗(yàn)證器。這可能在以下幾種情況下提供更可靠的驗(yàn)證:不方便存儲(chǔ)修改日期;HTTP 日期值的 one-second 解決方案不夠用;或者原始服務(wù)器希望避免由于使用修改日期而導(dǎo)致的某些沖突。

不同的瀏覽器有不同的配置行為。表 7-10 表明針對(duì)不同用戶操作的不同瀏覽器的行為。


表 7. 當(dāng)用戶打開(kāi)一個(gè)新的瀏覽器窗口時(shí)的 Last-Modified E-Tag 操作

  Firefox 3.5 IE 8 Chrome 3 Safari 4
內(nèi)容自上次訪問(wèn)以來(lái)沒(méi)有被修改 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304
內(nèi)容自上次訪問(wèn)以來(lái)已經(jīng)被修改 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200


表 8. 當(dāng)用戶在原始瀏覽器窗口中單擊 Enter 按鈕時(shí)的 Last-Modified E-Tag 操作

  Firefox 3.5 IE 8 Chrome 3 Safari 4
內(nèi)容自上次訪問(wèn)以來(lái)沒(méi)有被修改 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304
內(nèi)容自上次訪問(wèn)以來(lái)已經(jīng)被修改 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200


表 9. 當(dāng)用戶按 F5 鍵刷新頁(yè)面時(shí)的 Last-Modified E-Tag 操作

  Firefox 3.5 IE 8 Chrome 3 Safari 4
內(nèi)容自上次訪問(wèn)以來(lái)沒(méi)有被修改 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 304
內(nèi)容自上次訪問(wèn)以來(lái)已經(jīng)被修改 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200


表 10. 沒(méi)有緩存設(shè)置且用戶單擊 Back 或 Forward 按鈕

  Firefox 3.5 IE 8 Chrome 3 Safari 4
內(nèi)容自上次訪問(wèn)以來(lái)沒(méi)有被修改 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面
內(nèi)容自上次訪問(wèn)以來(lái)已經(jīng)被修改 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200

注意:所有瀏覽器都假定使用默認(rèn)設(shè)置運(yùn)行。

不進(jìn)行任何緩存相關(guān)設(shè)置

如果您不定義任何緩存相關(guān)設(shè)置,則不同的瀏覽器有不同的行為。有時(shí),同一個(gè)瀏覽器在相同的情形下每次運(yùn)行時(shí)的行為都是不同的。情況可能很復(fù)雜。另外,有些不該緩存的內(nèi)容如果被緩存,將會(huì)導(dǎo)致安全問(wèn)題。

不同的瀏覽器有不同的行為。表 11 展示了不同的瀏覽器行為。


表 11. 沒(méi)有緩存設(shè)置且用戶打開(kāi)一個(gè)新的瀏覽器窗口

  Firefox 3.5 IE 8 Chrome 3 Safari 4
打開(kāi)一個(gè)新頁(yè)面 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200
在原始窗口中單擊 Enter 按鈕 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面。 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200
按 F5 鍵刷新 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200
單擊 Back 或 Forward 按鈕 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面。 瀏覽器呈現(xiàn)來(lái)自緩存的頁(yè)面。 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200 瀏覽器重新發(fā)送請(qǐng)求到服務(wù)器。返回代碼是 200

注意:所有瀏覽器都假定使用默認(rèn)設(shè)置運(yùn)行。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
網(wǎng)站頭部文件http信息|客戶端瀏覽器緩存機(jī)制,服務(wù)器設(shè)置expires,Cache
html頁(yè)面清除緩存
Ajax解決瀏覽器的緩存問(wèn)題
基于資源的HTTP Cache的實(shí)現(xiàn)介紹
HTML5離線緩存在tomcat下部署可實(shí)現(xiàn)圖片flash等離線瀏覽
使用瀏覽器緩存來(lái)加快站點(diǎn)的訪問(wèn)速度
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服