摘要:服務(wù)器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用。不是服務(wù)器發(fā)出的錯(cuò)誤提示。如果相同,則獲取本地的緩存信息,反之服務(wù)器返回新的資源。服務(wù)器靜態(tài)資源修改了,返回的,也會(huì)修改這個(gè)是樂視網(wǎng)首頁(yè)第二次請(qǐng)求時(shí)的截包,會(huì)發(fā)現(xiàn)靜態(tài)資源的返回基本都是
http 304
原理好久沒寫了。感覺荒廢了好久。剛好今天有朋友問我關(guān)于靜態(tài)資源緩存問題。突然喚起我的學(xué)習(xí)興趣了。
發(fā)現(xiàn)好多同學(xué)對(duì)靜態(tài)資源都不是很清楚。小弟我剛好有一點(diǎn)心得。和大家分享一下。其實(shí)就是當(dāng)作我的筆記。歡迎指正。
http 304 Not Modified
意思是:Not Modified 客戶端有緩沖的文檔并發(fā)出了一個(gè)條件性的請(qǐng)求(一般是提供If-Modified-Since頭表示客戶只想比指定日期更新的文檔)。服務(wù)器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用。
HTTP/1.1 304 Not Modified不是服務(wù)器發(fā)出的錯(cuò)誤提示。而是服務(wù)器所承載的業(yè)務(wù)系統(tǒng)在開發(fā)時(shí)為了節(jié)省鏈路帶寬和提升瀏覽器的體驗(yàn)對(duì)GET/js、css、image等執(zhí)行了緩存機(jī)制。
在做http請(qǐng)求分析之前,一定要了解這個(gè)參數(shù)HTTP/1.1 304 Not Modified不是服務(wù)器發(fā)出的錯(cuò)誤提示。而是服務(wù)器所承載的業(yè)務(wù)系統(tǒng)在開發(fā)時(shí)為了節(jié)省鏈路帶寬和提升瀏覽器的體驗(yàn)對(duì)GET/js、css、image等執(zhí)行了緩存機(jī)制??蛻舳嗽诘谝淮螌?duì)服務(wù)器業(yè)務(wù)發(fā)出GET請(qǐng)求后,客戶端瀏覽器緩存了該頁(yè)面,當(dāng)客戶端第二次對(duì)服務(wù)器發(fā)出同樣的GET請(qǐng)求時(shí),若客戶端緩存中的If-Modified-Since過期,客戶端將向服務(wù)器發(fā)出GET請(qǐng)求,驗(yàn)證If-Modified-Since和If-None-Match是否與WEB-server中信息一致,如果GET頁(yè)面未做任何修改,服務(wù)器對(duì)客戶端返回HTTP/1.1 304 Not Modified,客戶端則直接從本地緩存中將頁(yè)面調(diào)取
requset請(qǐng)求
(1)If-Modified-Since:發(fā)送請(qǐng)求時(shí)與服務(wù)器
(2)If-None-Match:
response返回
(1)Last-Modified:資源被修改的最后時(shí)間
(2)ETag:對(duì)資源的索引節(jié)(INode),大?。⊿ize)和最后修改時(shí)間(MTime)進(jìn)行Hash后得到的,是資源的唯一標(biāo)識(shí)
特別注意:
(1)該兩項(xiàng)參數(shù)將存儲(chǔ)在客戶端的瀏覽器cache中,Last-Modified值存儲(chǔ)為 If-Modified-Since,ETag值存儲(chǔ)為If-None-Match.
(2)ETag的優(yōu)先級(jí)高于Last-Modified.
請(qǐng)求過程發(fā)生了什么 第一次請(qǐng)求:客服端發(fā)送請(qǐng)求-》本地?zé)o緩存-》向服務(wù)發(fā)送請(qǐng)求-》返回靜態(tài)資源,并且緩存到本地
這個(gè)是樂視網(wǎng)首頁(yè)第一次請(qǐng)求時(shí)的截包,會(huì)發(fā)現(xiàn)靜態(tài)資源的返回都是200
第二次請(qǐng)求:再這次請(qǐng)求中,http請(qǐng)求頭部包括了If-Modified-Since,If-None-Match這兩個(gè)參數(shù)與服務(wù)器做對(duì)比。如果相同,則獲取本地的緩存信息,反之服務(wù)器返回新的資源。并且Last-Modified,ETag數(shù)據(jù)重置。
服務(wù)器靜態(tài)資源修改了,response返回的Last-Modified,ETag也會(huì)修改
這個(gè)是樂視網(wǎng)首頁(yè)第二次請(qǐng)求時(shí)的截包,會(huì)發(fā)現(xiàn)靜態(tài)資源的返回基本都是304
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/91566.html
摘要:服務(wù)器告訴客戶,原來緩沖的文檔還可以繼續(xù)使用。不是服務(wù)器發(fā)出的錯(cuò)誤提示。如果相同,則獲取本地的緩存信息,反之服務(wù)器返回新的資源。服務(wù)器靜態(tài)資源修改了,返回的,也會(huì)修改這個(gè)是樂視網(wǎng)首頁(yè)第二次請(qǐng)求時(shí)的截包,會(huì)發(fā)現(xiàn)靜態(tài)資源的返回基本都是 http 304 好久沒寫了。感覺荒廢了好久。剛好今天有朋友問我關(guān)于靜態(tài)資源緩存問題。突然喚起我的學(xué)習(xí)興趣了。發(fā)現(xiàn)好多同學(xué)對(duì)靜態(tài)資源都不是很清楚。小弟我剛好...
摘要:如果響應(yīng)的內(nèi)容類型是或,這個(gè)屬性將保存包含著響應(yīng)數(shù)據(jù)的文檔。響應(yīng)的狀態(tài)狀態(tài)的說明當(dāng)對(duì)象把一個(gè)請(qǐng)求發(fā)送到服務(wù)器的過程中會(huì)經(jīng)歷幾個(gè)狀態(tài),直到請(qǐng)求被處理,然后才接收一個(gè)回應(yīng)。 1.什么是Ajax Ajax:是Asynchronous Javascript And XML的簡(jiǎn)寫,即異步JavaScript和XML用途:動(dòng)態(tài)刷新局部數(shù)據(jù),無需卸載整個(gè)頁(yè)面,從而帶來更好的用戶體驗(yàn)Ajax核心:XM...
摘要:概念緩存是一種保存資源副本并在下次請(qǐng)求時(shí)直接使用該副本的技術(shù)。緩存能緩解服務(wù)器壓力,提高響應(yīng)速度,提升用戶體驗(yàn)。以下討論的緩存是針對(duì)對(duì)資源而言的,且緩存策略都是依靠報(bào)文的首部來實(shí)現(xiàn)。參考緩存控制小結(jié)淺談瀏覽器的緩存機(jī)制 概念 緩存是一種保存資源副本并在下次請(qǐng)求時(shí)直接使用該副本的技術(shù)。——MDN 緩存能緩解服務(wù)器壓力,提高響應(yīng)速度,提升用戶體驗(yàn)。 以下討論的緩存是針對(duì)對(duì)img/scrip...
摘要:概念緩存是一種保存資源副本并在下次請(qǐng)求時(shí)直接使用該副本的技術(shù)。緩存能緩解服務(wù)器壓力,提高響應(yīng)速度,提升用戶體驗(yàn)。以下討論的緩存是針對(duì)對(duì)資源而言的,且緩存策略都是依靠報(bào)文的首部來實(shí)現(xiàn)。參考緩存控制小結(jié)淺談瀏覽器的緩存機(jī)制 概念 緩存是一種保存資源副本并在下次請(qǐng)求時(shí)直接使用該副本的技術(shù)?!狹DN 緩存能緩解服務(wù)器壓力,提高響應(yīng)速度,提升用戶體驗(yàn)。 以下討論的緩存是針對(duì)對(duì)img/scrip...
閱讀 2645·2021-11-23 09:51
閱讀 912·2021-09-24 10:37
閱讀 3630·2021-09-02 15:15
閱讀 1972·2019-08-30 13:03
閱讀 1893·2019-08-29 15:41
閱讀 2638·2019-08-29 14:12
閱讀 1436·2019-08-29 11:19
閱讀 3313·2019-08-26 13:39