我知道这个问题已经被问了很多次,但大部分都是在2009-2010年。
我相信一段时间前我正在处理的一个项目已经移除了它们,但是现在我找不到任何方法来删除它们。
那么在这个领域有任何进展吗?微软让IIS无法轻松配置这些标头似乎很疯狂。
我已经尝试过:
- 在web.config中添加空的etag标头
- 在web.config中添加带引号的etag标头
- 直接通过IIS添加一个空的etag标头
- 添加一个在BeginResponse上删除etag的自定义模块
- 与上述相同,但在EndResponse上
- 与上述两个相同,但将etag变为空
我听说有一个ISAPI过滤器可以用来删除它们,但我找不到它的任何地方,并且没有写一个的经验,但最终可能是唯一的方法。
只是为了有一些理由让我想要删除所有Etags。我让客户端缓存所有内容(过期和最后修改时间),因此一旦从服务器获取我的静态文件,它就永远不需要再查询服务器,直到它过期。如果使用Etags,您仍然需要为每个文件向服务器发出请求以查看标记是否仍然匹配。因此,使用客户端缓存只会为您需要的内容发出请求。
我还有一个版本控制系统,因此当更改发生时,静态内容将被引用为my.js?12345而不是my.js?12344。无论如何,我的观点是,目前我相信删除Etags将极大地改善我当前项目中的一个瓶颈。
<system.webServer>
节点内,并且您必须安装IIS Rewrite模块:http://www.iis.net/downloads/microsoft/url-rewrite - FiniteLooper