十年网站优化经验,关键词闪电排名,客户实力见证!

什么是ETag,有什么作用?

什么是ETag,有什么作用?

从网站优化来说,ETag是一个非常重要的信息。它是用作缓存使用的两个主要的头信息之一 (另一个是Expires)。那么ETag是什么?它有几种类型?如何设置ETag值?下面主要围绕这几个方面叙述一下自己的理解。

什么是ETag,有什么作用,如何设置ETag

一、什么是ETag?

ETag:是实体标签(Entity Tag)的缩写。ETag一般不以明文形式相应给客户端。在资源的各个生命周期中,它都具有不同的值,用于标识出资源的状态。当资源发生变更时,如果其头信息中一个或者多个发生变化,或者消息实体发生变化 ,那么ETag也随之发生变化。

ETag值的变更说明资源状态已经被修改。往往可以通过时间戳就可以便宜的得到ETag头信息。在服务端中如果发回给消费者的相应从一开始起就由ETag控制,那么可以确保更细粒度的ETag升级完全由服务来进行控制。服务计算ETag值,并在相应客户端请求时将它返回给客户端。

我们也可以把ETag理解为是一个客户端与服务器联系的记号。这个记号告诉客户端,当前网页在上次请求之后是否有发生变化,当发生变化时,ETag的值重新计算,并返回200状态码。如果没有变化,返回304状态码。从本地缓存里加载整个页面信息。

二、ETag的类型以及他们之间的区别?

ETag有两种类型:强ETag(strong ETag)与弱ETag(weak ETag)

强ETag表示形式:”27FAA065-2665-4167-9C4E-C96EA23D0A11”。

弱ETag表现形式:w/“27FAA065-2665-4167-9C4E-C96EA23D0A11”。

强、弱ETag类型的出现与Apache服务器计算ETag的方式有关。Apache默认通过FileEtag中FileEtag INode Mtime Size的配置自动生成ETag(当然也可以通过用户自定义的方式)假设服务端的资源频繁被修改(如1秒内修改了N次),此时如果有用户将Apache的配置改为MTime,由于MTime只能精确到秒,那么就可以避免强ETag在1秒内的ETag总是不同而频繁刷新Cache(如果资源在秒级经常被修改,也可以通过Last-Modified来解决)。

三、如何设置ETag?

1、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这一行。然后重新启动Apache,就启用ETag了。

2、Nginx如何设置ETag

将以下代码添加到你虚拟主机的server配置里.

location ~ .*/.(gif|jpg|jpeg|png|bmp|ico|rar|css|js|zip|xml|txt|flv|swf|mid|doc|cur|xls|pdf|txt|)
{   FileETag on;   etag_format "%X%X";   expires 7d;  }

然后重启Nginx就完成了。

另外,网站的sitemap启用Etag后:

1、百度可以更及时地响应sitemap的更新;

2、页面没有更新的情况下,对流量的消耗极小;

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

评论(103人参与,0人评论)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll Up