dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
提起向百度提交數(shù)據(jù),大家基本都會想到sitemap,北京網(wǎng)站建設云智近發(fā)現(xiàn)又推出的etag是什么東東?真的能有效果嗎?dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
sitemap是解決網(wǎng)站收錄至關(guān)重要的途徑之一,而通常sitemap的更新都不是很及時,并且體量都相對較大,此時也消耗了相應的網(wǎng)站流量及帶寬。而ETag可以用來標示網(wǎng)頁是否發(fā)生了變化,如果沒有變化返回304狀態(tài)碼,就不用再重新傳輸整個網(wǎng)頁了。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
在我們的sitemap配置了ETag之后,對日志一段時間的監(jiān)測發(fā)現(xiàn),其sitemap響應時間以及耗時的平均時間均大幅度下降,爬蟲訪問sitemap文件的次數(shù)有所增加,對于收錄而言,通過圖表也能看出相對的增長曲線,我們的整體收錄率大致提升范圍在2% – 5%左右。所以在此,強烈建議大家設置sitemap的ETag,簡簡單單的一個小動作就能看到相對明顯的效果還是很不錯的。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
ETag全稱EntityTags,HTTP協(xié)議規(guī)格說明中定義“ETag”為“被請求變量的實體值”。我們也可以把ETag理解為是一個客戶端與服務器關(guān)聯(lián)的記號。這個記號告訴客戶端,當前網(wǎng)頁在上次請求之后是否有發(fā)生變化,當發(fā)生變化時,ETag的值重新計算,并返回200狀態(tài)碼。如果沒有變化,返回304狀態(tài)碼。從而不會重新加載整個頁面信息。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
如下,是我司站點的sitemap文件的頭信息:dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
我們看到,ETag中包含了一連串的數(shù)據(jù),這就是計算出來的一個值,如果它發(fā)生變化,說明其頁面內(nèi)容一定發(fā)生了變化。如果頁面沒有發(fā)生變化時,頭信息應該如下: dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
在我們與技術(shù)溝通配置ETag時,需要通過此種方式進行驗證。第一次訪問200狀態(tài)碼,有ETag的一行文本,再次訪問該頁面時,狀態(tài)碼為304,ETag的值不變。至此,我們就可以確定ETag配置成功。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
另外,sitemap啟用Etag后:dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
1、百度可以更及時地響應sitemap的更新;dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
2、頁面沒有更新的情況下,對流量的消耗極?。?/strong>dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
3、百度更加及時的抓取sitemap,便于更好的收錄;dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
但多數(shù)情況下,ETag會與Last-Modified一起使用,這樣可利用客戶端(例如瀏覽器)的緩存。因為服務器首先產(chǎn)生Last-Modified/Etag標記,服務器可在稍后使用它來判斷頁面是否已經(jīng)被修改。本質(zhì)上,客戶端通過將該記號傳回服務器要求服務器驗證其(客戶端)緩存。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
站點服務器如何配置ETag?dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
好是對全站進行配置ETag,這樣對于站點而言,在帶寬消耗、爬蟲抓取上的提升還是會有很大收益的。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
一、Apache dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
Apache根據(jù)配置文件中的配置來設置Etag值,默認的Apache的FileEtag設置為:dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
FileEtagINode Mtime SizedkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
也就是根據(jù)這三個屬性來生成Etag值,他們之間通過一些算法來實現(xiàn),并輸出成hex的格式,相鄰屬性之間用-分隔,比如:"2e681a-6-5d044840",這里面的三個段,分別代表了INode,MTime,Size根據(jù)算法算出的值的Hex格式,可以改變Apache的FileEtag設置,比如設置成FileEtagSize,那么得到的Etag可能為:"6",設置了幾個段,Etag值就有幾個段。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
詳細配置:dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
步驟1dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
在要啟用ETag的目錄下增加.htaccess文件并在其中增加一行,如圖:FileETagMTime SizedkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
以覆蓋默認的Innode MTime Size的ETag,因為默認的ETag使用到的Innode會導致相同的文件在分布式服務器上產(chǎn)生的ETag不同。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
步驟2dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
如果.htacces文件已經(jīng)存在,請確保要啟用ETag的目錄/.htacces文件中沒有FileETagNone。如果存在FileETag None,請刪去該行。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
檢查沒有用mod_headers將ETag除去,即httpd.conf文件中沒有出現(xiàn)下面的語句,dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
LoadModuleheaders_module modules/mod_headers.so dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
Headerunset ETagdkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
如果出現(xiàn)如圖情況,請刪除Headerunset ETag這一行。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
步驟3dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
重新啟動httpd,就啟用ETag了。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
二、NginxdkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
步驟1dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
確認Nginx版本,命令:Nginx安裝目錄/sbin/nginx–v,dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
版本為1.7.3及更高,繼續(xù)步驟2;版本為1.7.3以下,1.3.3及以上,進行步驟3;版本為1.3.3以下,不支持ETag,請升級您的Nginx。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
步驟2dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
確認沒有關(guān)閉ETag:打開Nginx的配置文件nginx.conf(默認位置Nginx安裝目錄/conf/),確保其中沒有出現(xiàn)etagoff;,下圖為出現(xiàn)的情況,請將此行刪除。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
確認沒有使用ngx_headers_more清除ETag頭:同樣在配置文件中不能出現(xiàn)如下語句的任意一句,如果出現(xiàn)請將其刪除。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
重新啟動Nginx,就啟用ETag功能了。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
步驟3dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
查看是否開啟了gzip,且是否和etag出現(xiàn)沖突,出現(xiàn)沖突去步驟4,沒有去步驟2。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
打開Nginx的配置文件nginx.conf(默認位置Nginx安裝目錄/conf/),其中出現(xiàn)gzip on;語句證明開啟了gzip,如圖dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
開啟gzip時,可能與etag出現(xiàn)沖突,用瀏覽器多次請求此網(wǎng)站的靜態(tài)元素,如果只返回200,不返回304,證明存在沖突,請去步驟4;沒有沖突去步驟2。dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)
dkL北京網(wǎng)站設計開發(fā),小程序開發(fā),公眾號,微信開發(fā)-云智互聯(lián)