亚洲无人区一区二区三区_农村玉米地少妇野战亚洲_国产欧美日韩VA另类在线播放_免费人成视频网站在线_国产在线精品一区二区高清不卡

ETag簡介與在SEO方面的應(yīng)用

作者:聚擎 瀏覽:148 發(fā)布時(shí)間:2017-06-06
分享 評論 0

之前在《高性能網(wǎng)站建設(shè)指南》中了解過ETag,但一直沒有應(yīng)用。昨晚看到百度站長平臺在大力推薦ETag,忽然有一種凌凌漆接到國家任務(wù)的感覺。

  1. 什么是ETag

  ETag全稱為Entity Tag,中文名為實(shí)體標(biāo)簽,是Web服務(wù)器和瀏覽器用于確認(rèn)緩存組件有效性的一種機(jī)制。

  ETag是結(jié)合對象修改時(shí)間,對象大小,INode等特征的一個(gè)字符串,于HTTP1.1引入,相對于Last-Modified,提供了比最新修改日期更為靈活的機(jī)制。

  ETag目前主要應(yīng)用于靜態(tài)資源,比如圖片,JS和CSS文件。

  2. ETag原理

  當(dāng)用戶發(fā)送HTTP請求時(shí),瀏覽器會使用If-None-Match頭將ETag值傳回服務(wù)器,如果ETag匹配,則返回304狀態(tài)碼;否則返回200,并傳輸HTTP內(nèi)容。

  簡單示意圖如下:

  ETag流程圖

  注:ETag最常用在靜態(tài)資源上,比如圖片,JS和CSS文件。據(jù)說網(wǎng)頁上也可以使用ETag,但觀察了幾個(gè)大型網(wǎng)站都沒有使用,尚不知道原因。

  3. 遇到的問題和方法

  3.1 集群帶來的準(zhǔn)確性問題

  ETag的默認(rèn)格式是inode-size-timestamp,這也意味著在集群中,即便對象大小,權(quán)限,時(shí)間戳,路徑全都相同,inode和ETag也會不同。也就是說對于同樣的組件,從集群的一臺切換到另一臺,ETag就會不同。

  如果集群中有10臺服務(wù)器,ETag匹配的準(zhǔn)確率只有10%。

  3.2 解決方法

  那有沒有辦法解決集群的問題?答案是有的,需要對ETag進(jìn)行修改,建議去掉inode,使用size+timestamp,或只使用timestamp的方式。

  百度官方也給出了Apache等服務(wù)器下的具體修改方法。

  3.3 計(jì)算帶來的開支

  只要有計(jì)算就會帶來額外的成本,但從百度官方提供的測試數(shù)據(jù)來看,CPU利用率會提高1%~3%,吞吐率基本不變,尚能接受。

  5. ETag對SEO的影響

  ETag如果配置合理,會大幅增加sitemap的利用率。百度對每個(gè)站點(diǎn)的主動抓取有數(shù)量限制的,目前情況下,爬蟲無法準(zhǔn)確區(qū)分sitemap中哪些是新增加了網(wǎng)址的,哪些是未改變的,這就造成sitemap利用率較低。有可能爬蟲每天抓的都是萬年不更新的sitemap文件,而我們新加了網(wǎng)址的sitemap卻一直未抓取。

  而如果使用了ETag,爬蟲會直接略過未改變的,返回304的sitemap文件,直接抓取最近改變過的sitemap,這樣就提高了sitemap的利用率。

  據(jù)說sitemap權(quán)限以后會全面開放,因此ETag的應(yīng)用無論是對站長還是百度都是很有幫助的。

  注:因ETag的配置暫未上線,還沒有實(shí)戰(zhàn)數(shù)據(jù),之后會補(bǔ)充進(jìn)來。