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

IIS配置Etag详解

在IIS产品家族中,新的版本(例如IIS 7以后的版本)会自动配置一个ETag,这个ETag的值很类似于下面这样:

6ab823201a4ece1:0

它是由两个部分组成的

第一部分称为FileTimeStamp(时间戳),我们很容易联想到这可能是跟文档修改时间有关系,事实上确实是,但你无法将其直接还原为文档修改时间(微软并没有公开这部分的算法)。我确实对此做过一些研究,但最终还是没有办法解释这个值如何生成的,所以大家也只需要知道,这个是类似于一个时间戳的值就可以了。

第二部分为ChangeNumber(修改编号)。这个值在IIS 7.0以及后续的版本中,被统一设置为0。设置为一个统一值有利于解决一些问题(例如在服务器场模式下,该问题我后续也会讨论到)。事实上,保留这个ChangeNumber我觉得主要是历史遗留问题,因为早期版本是有这个值,而且可以不一样。既然如果这个值不一样的话,会给我们惹一些麻烦,那么其实最好的做法是干脆就不要这个字段了。但我想,为了保持格式上的一贯性,微软最终保留了这个字段。

这个默认的ETag不需要任何的配置就会存在(反过来,你如果要删除它倒是很不容易,这个问题后续也会提到),但我们可以继续添加自己想要的特殊ETag。也就是说,对于一个资源,实际上是可以有多个ETag的。

IIS7是默认开启ETag的,如果没有ETag,请按以下步骤设置:

打开Internet Information Services (IIS) Manager,如图双击HTTP响应头部(HTTPResponse Headers)

选择No Grouping标签,在空白处右键选择Add

设置NameETagValue双引号

配置web.config


<system.webServer>

    ...

              <httpProtocol>

                      <customHeaders>

                                <add name="ETag"value="&quot;&quot;"/>

                      </customHeaders>

              </httpProtocol>

    ...

</system.webServer>

 

完成,效果如图:


资源均来自第三方,谨慎下载,前往第三方网站下载


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