在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
设置Name为ETag,Value为双引号
配置web.config:
<system.webServer>
...
<httpProtocol>
<customHeaders>
<add name="ETag"value="""" />
</customHeaders>
</httpProtocol>
...
</system.webServer>
完成,效果如图:
转载自:http://www.yudouyudou.com/jiaochengheji/wangzhanjianshe/263.html
- 转载请注明: IIS配置Etag详解_余斗余斗_个人博客
- 版权声明: 本站原创文章,由 余斗余斗 发表在 网站建设 分类下,于2015-11-12最后更新
课外阅读:
ETag简介与作用(转载) http://bbs.tianya.cn/post-itinfo-377617-1.shtml
ETag使用效果对比及经验分享(附ETag配置教程) http://www.chinaz.com/web/2015/1113/470081.shtml