最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

HTTP緩存之ETag使用經(jīng)驗及效果

 更新時間:2023年05月20日 09:28:41   投稿:yin  
服務(wù)器首先產(chǎn)生ETag,服務(wù)器可在稍后使用它來判斷頁面是否已經(jīng)被修改。本質(zhì)上,客戶端通過將該記號傳回服務(wù)器要求服務(wù)器驗證其(客戶端)緩存。這種機制允許緩存更有效并節(jié)省帶寬,因為如果內(nèi)容沒有更改,Web 服務(wù)器不再需要發(fā)送完整的響應(yīng)。

Etag是URL的Entity Tag,用于標示URL對象是否改變,區(qū)分不同語言和Session等等。具體內(nèi)部含義是使服務(wù)器控制的,就像Cookie那樣。服務(wù)器首先產(chǎn)生ETag,服務(wù)器可在稍后使用它來判斷頁面是否已經(jīng)被修改。本質(zhì)上,客戶端通過將該記號傳回服務(wù)器要求服務(wù)器驗證其(客戶端)緩存。這種機制允許緩存更有效并節(jié)省帶寬,因為如果內(nèi)容沒有更改,Web 服務(wù)器不再需要發(fā)送完整的響應(yīng)。

sitemap是解決網(wǎng)站收錄至關(guān)重要的途徑之一,而通常sitemap的更新都不是很及時,并且體量都相對較大,此時也消耗了相應(yīng)的網(wǎng)站流量及帶寬。而ETag可以用來標示網(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)的記號。這個記號告訴客戶端,當前網(wǎng)頁在上次請求之后是否有發(fā)生變化,當發(fā)生變化時,ETag的值重新計算,并返回200狀態(tài)碼。如果沒有變化,返回304狀態(tài)碼。從而不會重新加載整個頁面信息。

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

sitemap啟用Etag的優(yōu)勢

sitemap啟用Etag后:

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

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

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

但多數(shù)情況下,ETag會與Last-Modified一起使用,這樣可利用客戶端(例如瀏覽器)的緩存。因為服務(wù)器首先產(chǎn)生Last-Modified/Etag標記,服務(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

以覆蓋默認的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

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

步驟3

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

二、Nginx

步驟1

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

版本為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)的情況,請將此行刪除。

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

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

步驟3

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

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

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

步驟4

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

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

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

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

如果沒有找到ngx_http_clear_etag(r);而是發(fā)現(xiàn)ngx_http_weak_etag(r);證明此Nginx沒有g(shù)zip和etag沖突的問題,不必進行任何修改。

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

三、IIS

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

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

選擇No Grouping標簽,在空白處右鍵選擇Add。

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

配置web.config:­

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

完成。

到此這篇關(guān)于HTTP緩存之ETag使用經(jīng)驗及效果的文章就介紹到這了,更多相關(guān)HTTP緩存ETag講解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Elasticsearch設(shè)置密碼的方法與驗證

    Elasticsearch設(shè)置密碼的方法與驗證

    在Elasticsearch中設(shè)置密碼是為了保護您的數(shù)據(jù)安全,下面這篇文章主要給大家介紹了關(guān)于Elasticsearch設(shè)置密碼方法與驗證的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • GCC?指令詳解及動態(tài)庫、靜態(tài)庫的使用方法

    GCC?指令詳解及動態(tài)庫、靜態(tài)庫的使用方法

    GCC?是?Linux?下的編譯工具集,是「GNU?Compiler?Collection」的縮寫,包含?gcc、g++?等編譯器,這篇文章主要介紹了GCC?指令詳解及動態(tài)庫、靜態(tài)庫的使用,需要的朋友可以參考下
    2022-10-10
  • gliffy UML工具安裝使用過程

    gliffy UML工具安裝使用過程

    這篇文章主要介紹了gliffy UML工具安裝使用過程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • 消息交換模式RabbitMQ簡介

    消息交換模式RabbitMQ簡介

    這篇文章簡單介紹了消息交換模式RabbitMQ,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • hadoop二次排序的原理和實現(xiàn)方法

    hadoop二次排序的原理和實現(xiàn)方法

    這篇文章主要介紹了hadoop二次排序的原理和實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • VS2019中scanf返回值被忽略的問題及其解決方法

    VS2019中scanf返回值被忽略的問題及其解決方法

    這篇文章主要介紹了VS2019中scanf返回值被忽略的問題及其解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 從Chrome App看微信小程序的發(fā)展前景

    從Chrome App看微信小程序的發(fā)展前景

    App的了解也許對我們對小程序的發(fā)張和前景的分析帶來一定的幫助。接下來本教程給大家分享從Chrome App看微信小程序,感興趣的朋友可以參考下
    2016-09-09
  • jetbrains mono字體安裝方法(推薦)

    jetbrains mono字體安裝方法(推薦)

    JetBrains 推出了一款名為 "Mono" 的字體。按照官方的說法,Mono 是專為開發(fā)者打造的編程字體。這篇文章主要介紹了jetbrains mono字體安裝方法,需要的朋友可以參考下
    2020-01-01
  • nGrinder性能工具源碼安裝部署過程

    nGrinder性能工具源碼安裝部署過程

    nGrinder是NHN公司用Java語言開發(fā)的一款的基于Grinder開發(fā)的開源B/S Web性能測試平臺,具有友好簡潔的用戶界面和分布式測試功能,本文給大家分享nGrinder性能工具源碼安裝部署過程,一起看看吧
    2021-05-05
  • vscode安裝擴展Volar失敗的解決方案

    vscode安裝擴展Volar失敗的解決方案

    volar擴展的時候,遇到了安裝失敗的問題,這篇文章主要給大家介紹了關(guān)于vscode安裝擴展Volar失敗的解決方案,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2024-05-05

最新評論

泰和县| 黔西县| 文登市| 宝坻区| 胶南市| 闽侯县| 福鼎市| 伊川县| 巴青县| 重庆市| 沧源| 西吉县| 汪清县| 东丽区| 甘泉县| 东乌珠穆沁旗| 左贡县| 香港 | 阳山县| 上饶县| 万荣县| 白沙| 武功县| 洪江市| 阳曲县| 金阳县| 文登市| 武平县| 楚雄市| 许昌县| 霍山县| 嵩明县| 泊头市| 江陵县| 宝丰县| 曲水县| 津南区| 逊克县| 洛宁县| 迭部县| 平和县|