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

資訊專欄INFORMATION COLUMN

瀏覽器的緩存機(jī)制

Channe / 2427人閱讀

摘要:緩存類型強(qiáng)緩存協(xié)商緩存強(qiáng)緩存不會(huì)向服務(wù)器發(fā)請(qǐng)求,直接從瀏覽器的緩存里面讀取。協(xié)商緩存會(huì)向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器會(huì)根據(jù)里面的參數(shù)判斷是否命中緩存,如果命中就會(huì)返回,并且?guī)闲碌姆祷赝ㄖ獮g覽器從緩存文件里面讀取數(shù)據(jù)。

1:緩存類型

 1:強(qiáng)緩存
 2:協(xié)商緩存

1: 強(qiáng)緩存:不會(huì)向服務(wù)器發(fā)請(qǐng)求,直接從瀏覽器的緩存里面讀取。狀態(tài)碼為200,size為from disk cache 或者 from memory cache。

2: 協(xié)商緩存:會(huì)向服務(wù)器發(fā)送請(qǐng)求,服務(wù)器會(huì)根據(jù)request header里面的參數(shù)判斷是否命中緩存,如果命中就會(huì)返回304,并且?guī)闲碌膔esponse header返回通知瀏覽器從緩存文件里面讀取數(shù)據(jù)。

2: 與強(qiáng)緩存相關(guān)的request header

1: Expires
2: Cache-Control

先來(lái)看一下各自的用法:

1: Expires: Wed, 21 Oct 2015 07:28:00 GMT
2: Cache-Control: "max-age=60"

Expires設(shè)置的是一個(gè)在服務(wù)器端的絕對(duì)時(shí)間,意思是在這個(gè)絕對(duì)之間之前的請(qǐng)求,瀏覽器都直接從瀏覽器本地的緩存里面讀取資源,不發(fā)請(qǐng)求。
Cache-Control: "max-age=60" 里面的60,單位是秒,以上設(shè)置的意思是指之后的60秒以內(nèi)的請(qǐng)求都從瀏覽器本地緩存里面讀取,不發(fā)請(qǐng)求。
Expires是http1.0的,而Cache-Control是http1.1的,當(dāng)兩者都有的時(shí)候,是Cache-Control生效。只有在不支持http1.1的情況下,Expires才生效。
Expires屬于response header, 但是,Cache-Control即可以出現(xiàn)在request header里面,也可以出現(xiàn)在response header里面,它的值也還有很多,下一篇再細(xì)講。

3: 協(xié)商緩存
跟協(xié)商緩存相關(guān)的header主要有四個(gè),其中request header 2個(gè),response header 2個(gè)。
1: request header

1: If-None-Match
2: If-Modified-Since

2: response header

1: Etag
2: Last-Modified

1: 先解釋一下2個(gè)response header是什么:
Etag
Etag是資源的唯一標(biāo)識(shí),只要資源發(fā)生變化,Etag就是重新生成。Etag會(huì)在上一次資源加載時(shí),通過(guò)reponse header返回,瀏覽器會(huì)把這個(gè)Etag保存起來(lái)。
Last-Modified
Last-Modified是資源最后一次被修改的時(shí)間,也是通過(guò)response header返回,瀏覽器也會(huì)把這個(gè)時(shí)間保存起來(lái)。
2: 再來(lái)看看這2個(gè)response header怎么用
瀏覽器在請(qǐng)求的時(shí)候,會(huì)把Etag的值賦給If-None-Match;把Last-Modified的值給If-Modified-Since,也就是:

If-None-Match: ${Etag}
If-Modified-Since: ${Last-Modified}

服務(wù)器處理這條請(qǐng)求,拿到這次的Etag和Last-Modified的值與服務(wù)器上的資源的Etag和Last-Modified比較,如果相同,那就命中協(xié)商緩存。

這兩隊(duì)的作用是一樣的,但是都有各自的優(yōu)缺點(diǎn):
1: 精確度
Etag > Last-Modified
因?yàn)長(zhǎng)ast-Modified的精讀是秒,如果一個(gè)文件在一秒之內(nèi)改變了很多次,那Last-Modified不會(huì)變。但是Etag是只要資源發(fā)生變化,Etag就會(huì)更新,那緩存的命中率就會(huì)高一些,也可以說(shuō)是更精確。
2: 性能
Last-Modified > Etag
因?yàn)長(zhǎng)ast-Modified只需要保存一個(gè)時(shí)間值就好,而Etag需要服務(wù)器用算法算一個(gè)hash值。
3: 優(yōu)先級(jí)
Etag> Last-Modified

PS: 雖然在上面的內(nèi)容里面,在cache-control出現(xiàn)在強(qiáng)緩存那節(jié),協(xié)商緩存也沒(méi)有提到cache-control,但是cache-control的某些情況下也會(huì)觸發(fā)協(xié)商緩存,這個(gè)內(nèi)容在下一篇文章再講。

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

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

相關(guān)文章

  • Web緩存相關(guān)知識(shí)整理

    摘要:緩存緩存,也叫網(wǎng)關(guān)緩存反向代理緩存。瀏覽器先向網(wǎng)關(guān)發(fā)起請(qǐng)求,網(wǎng)關(guān)服務(wù)器后面對(duì)應(yīng)著一臺(tái)或多臺(tái)負(fù)載均衡源服務(wù)器,會(huì)根據(jù)它們的負(fù)載請(qǐng)求,動(dòng)態(tài)將請(qǐng)求轉(zhuǎn)發(fā)到合適的源服務(wù)器上。雖然這種架構(gòu)負(fù)載均衡源服務(wù)器之間的緩存沒(méi)法共享,但卻擁有更好的處擴(kuò)展性。 一、前言? 工作上遇到一個(gè)這樣的需求,一個(gè)H5頁(yè)面在APP端,如果勾選已讀狀態(tài),則下次打開(kāi)該鏈接,會(huì)跳過(guò)此頁(yè)面。用到了HTML5 的本地存儲(chǔ) API ...

    rickchen 評(píng)論0 收藏0
  • H5 緩存機(jī)制淺析 - 移動(dòng)端 Web 加載性能優(yōu)化

    摘要:根據(jù)標(biāo)準(zhǔn),到目前為止,一共有種緩存機(jī)制,有些是之前已有,有些是才新加入的。首次請(qǐng)求緩存有效期內(nèi)請(qǐng)求緩存過(guò)期后請(qǐng)求一般瀏覽器會(huì)將緩存記錄及緩存文件存在本地文件夾中。 騰訊 Bugly 特約作者:賀輝超 1. H5 緩存機(jī)制介紹 H5,即 HTML5,是新一代的 HTML 標(biāo)準(zhǔn),加入很多新的特性。離線存儲(chǔ)(也可稱為緩存機(jī)制)是其中一個(gè)非常重要的特性。H5 引入的離線存儲(chǔ),這意味著 web ...

    alin 評(píng)論0 收藏0
  • 覽器緩存是什么?它機(jī)制又是什么?

    摘要:對(duì)于瀏覽器緩存,相信很多開(kāi)發(fā)者對(duì)它真的是又愛(ài)又恨。那么瀏覽器緩存究竟是個(gè)什么樣的神奇玩意呢什么是瀏覽器緩存簡(jiǎn)單來(lái)說(shuō),瀏覽器緩存就是把一個(gè)已經(jīng)請(qǐng)求過(guò)的資源如頁(yè)面,圖片,,數(shù)據(jù)等拷貝一份副本儲(chǔ)存在瀏覽器中。 對(duì)于瀏覽器緩存,相信很多開(kāi)發(fā)者對(duì)它真的是又愛(ài)又恨。一方面極大地提升了用戶體驗(yàn),而另一方面有時(shí)會(huì)因?yàn)樽x取了緩存而展示了錯(cuò)誤的東西,而在開(kāi)發(fā)過(guò)程中千方百計(jì)地想把緩存禁掉。那么瀏覽器緩存究竟...

    jsummer 評(píng)論0 收藏0
  • 覽器緩存是什么?它機(jī)制又是什么?

    摘要:對(duì)于瀏覽器緩存,相信很多開(kāi)發(fā)者對(duì)它真的是又愛(ài)又恨。那么瀏覽器緩存究竟是個(gè)什么樣的神奇玩意呢什么是瀏覽器緩存簡(jiǎn)單來(lái)說(shuō),瀏覽器緩存就是把一個(gè)已經(jīng)請(qǐng)求過(guò)的資源如頁(yè)面,圖片,,數(shù)據(jù)等拷貝一份副本儲(chǔ)存在瀏覽器中。 對(duì)于瀏覽器緩存,相信很多開(kāi)發(fā)者對(duì)它真的是又愛(ài)又恨。一方面極大地提升了用戶體驗(yàn),而另一方面有時(shí)會(huì)因?yàn)樽x取了緩存而展示了錯(cuò)誤的東西,而在開(kāi)發(fā)過(guò)程中千方百計(jì)地想把緩存禁掉。那么瀏覽器緩存究竟...

    godruoyi 評(píng)論0 收藏0
  • 覽器緩存機(jī)制

    摘要:從瀏覽器角度來(lái)看,整個(gè)就是一個(gè)源服務(wù)器,從這個(gè)層面來(lái)說(shuō),瀏覽器和服務(wù)器之間的緩存機(jī)制,在這種架構(gòu)下同樣適用。如果命中,則返回,告訴瀏覽器資源未更新,可使用本地的緩存。 緩存類型 緩存在宏觀上可以分成兩類:私有緩存和共享緩存。共享緩存就是那些能被各級(jí)代理緩存的緩存。私有緩存就是用戶專享的,各級(jí)代理不能緩存的緩存。 微觀上可以分下面幾類: 瀏覽器緩存 緩存存在的意義就是當(dāng)用戶點(diǎn)擊back按...

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

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

0條評(píng)論

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