作者:阿手站长,发布日期:2016-08-05
阅读:74;评论:0

  之前在《高性能网站建设指南》中了解过ETag,但一直没有应用。昨晚看到百度站长平台在大力推荐ETag,忽然有一种凌凌漆接到国家任务的感觉。   1. 什么是ETag   ETag全称为Entity Tag,中文名为实体标签,是Web服务器和浏览器用于确认缓存组件有效性的一种机制。   ETag是结合对象修改时间,对象大小,INode等特征的一个字符串,于HTTP1.1引入,相对于Last-Modified,提供了比最新修改日期更为灵活的机制。   ETag目前主要应用于静态资源,比如图片,JS和CSS文件。   2. ETag原理   当用户发送HTTP请求时,浏览器会使用If-None-Match头将ETag值传回服务器,如果ETag匹配,则返回304状态码;否则返回200,并传输HTTP内容。   简单示意图如下:   ETag流程图   注:ETag最常用在静态资源上,比如图片,JS和CSS文件。据说网页上也可以使用ETag,但观察了几个大型网站都没有使用,尚不知道原因。   3. 遇到的问题和方法   3.1 集群带来的准确性问题   ETag的默认格式是inode-size-timestamp,这也意味着在集群中,即便对象大小,权限,时间戳,路径全都相同,inode和ETag也会不同。也就是说对于同样的组件,从集群的一台切换到另一台,ETag就会不同。   如果集群中有10台服务器,ETag匹配的准确率只有10%。   3.2 解决方法   那有没有办法解决集群的问题?答案是有的,需要对ETag进行修改,建议去掉inode,使用size+timestamp,或只使用timestamp的方式。   百度官方也给出了Apache等服务器下的具体修改方法。   3.3 计算带来的开支   只要有计算就会带来额外的成本,但从百度官方提供的测试数据来看,CPU利用率会提高1%~3%,吞吐率基本不变,尚能接受。   5. ETag对SEO的影响   ETag如果配置合理,会大幅增加sitemap的利用率。百度对每个站点的主动抓取有数量限制的,目前情况下,爬虫无法准确区分sitemap中哪些是新增加了网址的,哪些是未改变的,这就造成sitemap利用率较低。有可能爬虫每天抓的都是万年不更新的sitemap文件,而我们新加了网址的sitemap却一直未抓取。   而如果使用了ETag,爬虫会直接略过未改变的,返回304的sitemap文件,直接抓取最近改变过的sitemap,这样就提高了sitemap的利用率。   据说sitemap权限以后会全面开放,因此ETag的应用无论是对站长还是百度都是很有帮助的。   注:因ETag的配置暂未上线,还没有实战数据,之后会补充进来。(本文"彭致杰SEO:ETag简介与在SEO方面的应用"的责任编辑:雪豹)

你可能感兴趣的文章

评论区

发表评论

必填

选填

选填

必填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。