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