【发布时间】:2011-12-18 08:17:30
【问题描述】:
我知道这个问题已经被问过很多次了,但大多数是在 2009-2010 年。
我很确定不久前我正在处理的一个项目删除了它们,但是我目前找不到任何方法来删除它们。
那么在这个领域有什么进步吗?微软让 IIS 无法轻松配置这些标头似乎很疯狂。
目前已经尝试过:
- 在 web.config 中添加一个空白的 etag 标头
- 在 web.config 中添加带引号的 etag
- 直接通过 IIS 添加空白 etag 标头
- 添加删除 BeginResponse 上的 etag 的自定义模块
- 与上面相同,但用于 EndResponse
- 与上述相同,但不是删除 etag,而是将其设为空
我听说有一个 ISAPI 过滤器可以删除它们,但我在任何地方都找不到它,并且没有从头开始编写的经验,但最终可能是唯一的方法。
所以我想删除所有内容的 Etag 是有原因的。我让客户端缓存所有内容(过期和上次修改),因此一旦从服务器获取我的静态文件,它就不需要再次查询服务器,直到它过期。就像您使用 Etags 一样,您仍然需要为每个文件向服务器发出请求,以确定标签是否仍然匹配。因此,使用客户端缓存,您只需请求您需要的内容。
我还有一个版本控制系统,所以当发生更改时,静态内容会被引用为 my.js?12345 而不是 my.js?12344。无论如何,关键是我目前认为删除 Etags 将大大改善我当前项目的瓶颈之一。
【问题讨论】:
标签: iis caching http-headers iis-7.5 etag