ETag全稱EntityTags,HTTP協議規格說明中定義“ETag”為“被請求變量的實體值”。我們也可以把ETag理解為是一個客戶端與服務器關聯的記號。這個記號告訴客戶端,當前網頁在上次請求之后是否有發生變化,當發生變化時,ETag的值重新計算,并返回200狀態碼。如果沒有變化,返回304狀態碼。從而不會重新加載整個頁面信息。
以下會告訴你,Apache如何開啟ETag。
Apache根據配置文件中的配置來設置Etag值,默認的Apache的FileEtag設置為:
FileEtagINode Mtime Size
也就是根據這三個屬性來生成Etag值,他們之間通過一些算法來實現,并輸出成hex的格式,相鄰屬性之間用-分隔,比如:"2e681a-6-5d044840",這里面的三個段,分別代表了INode,MTime,Size根據算法算出的值的Hex格式,可以改變Apache的FileEtag設置,比如設置成FileEtagSize,那么得到的Etag可能為:"6",設置了幾個段,Etag值就有幾個段。
詳細配置:
步驟1
在要啟用ETag的目錄下增加.htaccess文件并在其中增加一行,如圖:FileETagMTime Size
以覆蓋默認的Innode MTime Size的ETag,因為默認的ETag使用到的Innode會導致相同的文件在分布式服務器上產生的ETag不同。
步驟2
如果.htacces文件已經存在,請確保要啟用ETag的目錄/.htacces文件中沒有FileETagNone。如果存在FileETag None,請刪去該行。
檢查沒有用mod_headers將ETag除去,即httpd.conf文件中沒有出現下面的語句,
LoadModuleheaders_module modules/mod_headers.so
Headerunset ETag
如果出現如圖情況,請刪除Headerunset ETag這一行。
步驟3 重新啟動httpd,就啟用ETag了。
新聞熱點
疑難解答