欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

ETag使用效果對比及ETag配置圖文教程

 更新時間:2016年05月13日 18:42:55   投稿:mdxy-dxy  
強烈建議大家設(shè)置sitemap的ETag,簡簡單單的一個小動作就能看到相對明顯的效果還是很不錯的,需要的朋友可以參考下

ETag使用效果對比及ETag配置教程 腳本之家

提起向百度提交數(shù)據(jù),大家基本都會想到sitemap,最近又推出的etag是什么東東?真的能有效果嗎?

sitemap是解決網(wǎng)站收錄至關(guān)重要的途徑之一,而通常sitemap的更新都不是很及時,并且體量都相對較大,此時也消耗了相應(yīng)的網(wǎng)站流量及帶寬。而ETag可以用來標(biāo)示網(wǎng)頁是否發(fā)生了變化,如果沒有變化返回304狀態(tài)碼,就不用再重新傳輸整個網(wǎng)頁了。

在我們的sitemap配置了ETag之后,對日志一段時間的監(jiān)測發(fā)現(xiàn),其sitemap響應(yīng)時間以及耗時的平均時間均大幅度下降,爬蟲訪問 sitemap文件的次數(shù)有所增加,對于收錄而言,通過圖表也能看出相對的增長曲線,我們的整體收錄率大致提升范圍在2% – 5%左右。所以在此,強烈建議大家設(shè)置sitemap的ETag,簡簡單單的一個小動作就能看到相對明顯的效果還是很不錯的。

ETag全稱EntityTags,HTTP協(xié)議規(guī)格說明中定義“ETag”為“被請求變量的實體值”。我們也可以把ETag理解為是一個客戶端與 服務(wù)器關(guān)聯(lián)的記號。這個記號告訴客戶端,當(dāng)前網(wǎng)頁在上次請求之后是否有發(fā)生變化,當(dāng)發(fā)生變化時,ETag的值重新計算,并返回200狀態(tài)碼。如果沒有變 化,返回304狀態(tài)碼。從而不會重新加載整個頁面信息。

如下,是我司站點的sitemap文件的頭信息:

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

我們看到,ETag中包含了一連串的數(shù)據(jù),這就是計算出來的一個值,如果它發(fā)生變化,說明其頁面內(nèi)容一定發(fā)生了變化。如果頁面沒有發(fā)生變化時,頭信息應(yīng)該如下: 

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

在我們與技術(shù)溝通配置ETag時,需要通過此種方式進行驗證。第一次訪問200狀態(tài)碼,有ETag的一行文本,再次訪問該頁面時,狀態(tài)碼為304,ETag的值不變。至此,我們就可以確定ETag配置成功。

另外,sitemap啟用Etag后:

1、百度可以更及時地響應(yīng)sitemap的更新;

2、頁面沒有更新的情況下,對流量的消耗極??;

3、百度更加及時的抓取sitemap,便于更好的收錄;

但多數(shù)情況下,ETag會與Last-Modified一起使用,這樣可利用客戶端(例如瀏覽器)的緩存。因為服務(wù)器首先產(chǎn)生Last- Modified/Etag標(biāo)記,服務(wù)器可在稍后使用它來判斷頁面是否已經(jīng)被修改。本質(zhì)上,客戶端通過將該記號傳回服務(wù)器要求服務(wù)器驗證其(客戶端)緩 存。

站點服務(wù)器如何配置ETag?

最好是對全站進行配置ETag,這樣對于站點而言,在帶寬消耗、爬蟲抓取上的提升還是會有很大收益的。

一、Apache  

Apache根據(jù)配置文件中的配置來設(shè)置Etag值,默認的Apache的FileEtag設(shè)置為:

FileEtagINode Mtime Size

也就是根據(jù)這三個屬性來生成Etag值,他們之間通過一些算法來實現(xiàn),并輸出成hex的格式,相鄰屬性之間用-分隔,比如:"2e681a- 6-5d044840",這里面的三個段,分別代表了INode,MTime,Size根據(jù)算法算出的值的Hex格式,可以改變Apache的 FileEtag設(shè)置,比如設(shè)置成FileEtagSize,那么得到的Etag可能為:"6",設(shè)置了幾個段,Etag值就有幾個段。

詳細配置:

步驟1

在要啟用ETag的目錄下增加.htaccess文件并在其中增加一行,如圖:FileETagMTime Size

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

以覆蓋默認的Innode MTime Size的ETag,因為默認的ETag使用到的Innode會導(dǎo)致相同的文件在分布式服務(wù)器上產(chǎn)生的ETag不同。

步驟2

如果.htacces文件已經(jīng)存在,請確保要啟用ETag的目錄/.htacces文件中沒有FileETagNone。如果存在FileETag None,請刪去該行。

檢查沒有用mod_headers將ETag除去,即httpd.conf文件中沒有出現(xiàn)下面的語句,

LoadModuleheaders_module modules/mod_headers.so 

Headerunset ETag

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

如果出現(xiàn)如圖情況,請刪除Headerunset ETag這一行。

步驟3

重新啟動httpd,就啟用ETag了。

二、Nginx

步驟1

確認Nginx版本,命令:Nginx安裝目錄/sbin/nginx–v,

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

版本為1.7.3及更高,繼續(xù)步驟2;版本為1.7.3以下,1.3.3及以上,進行步驟3;版本為1.3.3以下,不支持ETag,請升級您的Nginx。

步驟2

確認沒有關(guān)閉ETag:打開Nginx的配置文件nginx.conf(默認位置Nginx安裝目錄/conf/),確保其中沒有出現(xiàn)etagoff;,下圖為出現(xiàn)的情況,請將此行刪除。

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

確認沒有使用ngx_headers_more清除ETag頭:同樣在配置文件中不能出現(xiàn)如下語句的任意一句,如果出現(xiàn)請將其刪除。

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

重新啟動Nginx,就啟用ETag功能了。

步驟3

查看是否開啟了gzip,且是否和etag出現(xiàn)沖突,出現(xiàn)沖突去步驟4,沒有去步驟2。

打開Nginx的配置文件nginx.conf(默認位置Nginx安裝目錄/conf/),其中出現(xiàn)gzip on;語句證明開啟了gzip,如圖

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

開啟gzip時,可能與etag出現(xiàn)沖突,用瀏覽器多次請求此網(wǎng)站的靜態(tài)元素,如果只返回200,不返回304,證明存在沖突,請去步驟4;沒有沖突去步驟2。

 

步驟4

請關(guān)閉gzip,即將上一步中的gzipon;改為gzip off;然后去步驟2。

若不想關(guān)閉gzip,并要開啟ETag,同時仍要堅持使用當(dāng)前的Nginx版本,只能修改源碼并重新編譯。

下載此版本安裝包并解壓,將其目錄下/src/http/modules/ngx_http_gzip_filter_module.c

文件中約309行左右的ngx_http_clear_etag(r);一行注釋掉或刪掉。如下圖

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

如果沒有找到ngx_http_clear_etag(r);而是發(fā)現(xiàn)ngx_http_weak_etag(r);如下圖,證明此Nginx

沒有g(shù)zip和etag沖突的問題,不必進行任何修改。

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

重新編譯源碼安裝Nginx,解決這個沖突,然后去步驟2。

三、IIS

IIS7是默認開啟ETag的,如果沒有ETag,請按以下步驟設(shè)置。

打開Internet Information Services (IIS) Manager,如圖雙擊HTTP響應(yīng)頭部(HTTPResponse Headers),

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

選擇No Grouping標(biāo)簽,在空白處右鍵選擇Add。

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

設(shè)置Name為ETag,Value為雙引號

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

配置web.config:­

<system.webServer>
...
<httpProtocol>
<customHeaders>
<add name="ETag"value="&quot;&quot;" />
</customHeaders>
</httpProtocol>
...
</system.webServer>

完成。

ETag是什么 ETag標(biāo)準(zhǔn) ETag響應(yīng)頭 httpETag

相關(guān)文章

最新評論