{
    分享网正式开通,我们为大家提供免费资源,欢迎大家踊跃投稿!

Etag详解以及对SEO的作用

一、Etag是什么

在HTTP1.1规范中,新增了一个HTTP头信息:Etag (Entity Tag)。它一般不以明文形式出现,在不同的条件下,它都具有不同的值,用来标识出资源的状态。一旦资源发生变化(网页变化,头信息变化等),Etag的只也会响应变化。这样一来,Etag值的变化就说明资源状态已经修改。

在HTTP1.1协议中并没有规范如何计算ETag。ETag值可以是唯一标识资源的任何东西,如持久化存储中的某个资源关联的版本、一个或者多个文件属性,实体头信息和校验值、(CheckSum),也可以计算实体信息的散列值。有时候,为了计算一个ETag值可能有比较大的代价,此时可以采用生成唯一值等方式(如常见的GUID)。无论怎样,服务都应该尽可能的将ETag值返回给客户端。客户端不用关心ETag值如何产生,只要服务在资源状态发生变更的情况下将ETag值发送给它就行。

二、Etag作用

HTTP1.1用Etag来判断请求的文件是否被修改,主要为了解决Last-Modified无法解决的一些问题

1.某些服务器不能精确的得到文件的最后修改时间;

2.一些文件也许会周期性的更改,但是他的内容并不改变(仅仅改变的修改时间),这个时候并不希望客户端认为这个文件被修改了重新GET;

3.某些文件修改非常频繁, 1秒内修改了N次,If-Modified-Since能检查到的粒度是秒级的,这种修改无法判断。

在Etag之前,Last-Modified头信息的功能与之类似,在浏览器第一次请求某一个URL时,服务器端的返回状态会是200,内容是客户端请求的资源,同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间,格式类似于:


Last-Modified : Fri , 12 May 2006 18:53:33 GMT
 

客户端第二次请求此URL时,根据HTTP协议的规定,浏览器会向服务器传送If-Modified-Since报头,询问该时间之后文件是否有被修改过:


If-Modified-Since : Fri , 12 May 2006 18:53:33 GMT
 

如果服务器端的资源没有变化,则自动返回 HTTP 304(Not Changed.)状态码,内容为空,这样就节省了传输数据量。

按照HTTP标准,Last-Modified只能精确到秒级。ETag的出现可以很好的解决这个问题。在用途上,ETag常与If-None-Match或者If-Match一起,由客户端通过HTTP头信息(包括ETag值)发送给服务端处理。Last-Modified常与If-Modified-Since一起由客户端将Last-Modified值包括在HTTP头信息中发给服务端进行处理。如果监测到Etag值变化则会返回200状态码,接受整个对象。

第一次载入,返回200

如果Eatg值不变,则改返回304,而不必重新传输整个对象。


第二次载入,页面未发生变化,Etag不变,返回304

为此,HTTP1.1引入了ETag,由服务器端生成,客户端通过If-Match或者说If-None-Match这个条件判断请求来验证资源是否修改。

三、启用Etag对SEO的好处

谈到对SEO的好处,我们先看看现在的站点Sitemap使用时的一些缺陷:

1.全量抓取,消耗带宽

现在百度对站点sitemap的抓取会将sitemap文件完整下载下来,鉴于sitemap文件一般较大,而这种下载可能存在多次,故比较消耗网站的流量和带宽。

2.发现更新不及时

当站点或其sitemap发生更新时,百度难以及时发现并响应,因为百度难以无时无刻地持续检查站点内容和sitemap是否更新。

网站启用Etag之后,百度可以更快速地响应sitemap的更新,没有更改内容的情况下,服务器只发回304状态码,对流量的消耗极小,在每个head平均227B大小的通常情形下,一整天二十四小时每秒都回应的流量消耗仅为18.7M。

现在百度站长平台对每个站点的sitemap主动抓取次数设有上限,且这项功能没有对所有站开放,如果我们的的站点sitemap启用了ETag,并通过了测试,那么就可以用很小的流量享受百度及时更新我们的sitemap的功能,以便于百度更好地收录我们网站的内容。

在余斗的网站的sitemap配置了Etag之后,对日志一段时间的监测发现,其sitemap响应时间以及耗时的平均时间均大幅度下降,爬虫访问sitemap文件的次数有所增加,对于收录而言,通过图表也能看出相对的增长曲线,整体收录率大致提升范围在2% – 5%左右。

所以在此,强烈建议大家设置sitemap的Etag,简简单单的一个小动作就能看到相对明显的效果还是很不错的。有能力的最好做下全站配置Etag,这样对于站点而言,在带宽消耗、爬虫抓取上的提升还是会有很大收益的。

扩展阅读:

·  Nginx配置Etag详解
·  IIS配置Etag详解
·  Apache配置Etag详解
资源均来自第三方,谨慎下载,前往第三方网站下载


米微资源分享网 , 版权所有丨本站资源仅限于学习研究,严禁从事商业或者非法活动!丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Etag详解以及对SEO的作用
喜欢 ()分享 (0)