1、ETag簡介
ETag(EntityTags)是URL的tag,用來標示URL對象是不是轉變,這樣可獨霸客戶端(例如瀏覽器)的緩存。由處事器首先產生ETag,客戶端經過過程將該記號傳回處事器請求處事器驗證其(客戶端)緩存。處事器操作它來剖斷頁面是不是已經被改削,若是未改削返回304,而沒需要從頭傳輸全數對象。
2、此刻站點sitemap存在的問題問題
1.創造更新不實時
當站點或其sitemap產生更新時,百度難以實時創造并響應,由于百度難以無時無刻地延續搜檢站點內容和sitemap是不是更新。
2.全量抓取,破耗帶寬
此刻百度對站點sitemap的抓取會將sitemap文件完整下載下來,鑒于sitemap文件個別較大,而這類下載可能存在多次,故斗勁破耗網站的流量和帶寬。
3、ETag浸染
HTTP1.1用Etag來剖斷請求的文件是不是被改削,重要為體味決Last-Modified沒法解決的一些問題問題
1、一些文件或許會周期性的更改,可是他的內容實在不轉變(僅僅轉變的改削時刻),這個時辰實在不但愿客戶端感觸這個文件被改削了從頭GET;
2、某些文件改削很是頻仍, 1秒內改削了N次,If-Modified-Since能搜檢到的粒度是秒級的,這類改削沒法剖斷
3、某些處事器不能切確的獲得文件的最后改削時刻;
為此,HTTP1.1引入了Etag.但標準并沒有規定Etag的內容是甚么或者說要若何實現,唯一規定的是Etag需要放在雙引號內。Etag由處事器端天生,客戶端經過過程If-Match或者說If-None-Match這個條件剖斷請求來驗證本錢是不是改削。我們常見的是操作If-None-Match.請求一個文件的流程可能以下:
第一次請求:
1.客戶端倡導HTTP GET請求一個文件;
2.處事器措置請求,返回文件內容和一堆Header,當然搜羅Etag(例如"1ec5-502264e2ae4c0")(假定處事器撐持Etag天生和已經開啟了Etag).狀態碼200,以下圖所示,初度請求百度首頁時,成功獲得百度logo圖片文件bd_logo1.png,狀態碼200,巨細8.1KB,返回的Header中搜羅ETag(“1ec5-502264e2ae4c0”)。
第二次請求:
1.客戶端倡導HTTP GET請求一個文件,這個時辰客戶端同時發送一個If-None-Match頭,這個頭的內容就是我們第一次請求時處事器返回的Etag:1ec5-502264e2ae4c0
2.處事器剖斷發送過去的Etag和計較出來的Etag是匹配的,不返回200,返回304,讓客戶端持續操作當地緩存。如圖所示此次對bd_logo1.png的請求,處事器只返回了Header沒有返回內容,巨細僅為349B。
4、站點啟用ETag的好處
1.對sitemap啟用ETag后,百度可以更快速地響應sitemap的更新,沒有更改內容的景象下,處事器只發回304應對頭,對流量的破耗極小,在每個head均勻227B巨細的凡是景象形象下,一成天二十四小時每秒都回應的流量破耗僅為18.7M。
2.此刻站長平臺對每個站點的sitemap主動抓取次數設有上限,且這項功效沒有對所有站凋謝,若是您的站點sitemap啟用了ETag,并經過過程了測試,那么便可以用很小的流量享受百度實時更新您的sitemap的功效,以便于百度更好地收錄您網站的內容。