是否有人知道是否值得在单个Web服务器上托管的Web应用程序上禁用ETag?目前我们在应用程序中没有使用ETag。
如果值得禁用它们 - 为什么?
非常感谢。
答案 0 :(得分:8)
我不知道这是否有帮助,但你可以在这里阅读etags: http://developer.yahoo.net/blog/archives/2007/07/high_performanc_11.html
以及关于ETags的what Jeff Atwood thinks:
ETag是一个校验和字段 与每个服务器文件,所以客户端 可以判断服务器资源是否是 与缓存版本不同 客户端在本地持有雅虎建议 关闭ETag因为它们导致 由于服务器农场的问题 它们的生成方式 机器特定的标记。除非 你应该运行服务器场 忽略这个指导。它只会制作 你的网站表现更糟,因为 客户将有一个更困难的时间 确定其缓存是否陈旧或 新鲜。对客户来说是可能的 使用现有的最后修改日期 字段来确定是否缓存 是陈旧的,但最后修改是一个弱点 验证器,而实体标签(ETag) 是一个强有力的验证者。为何交易 弱点的力量?
.NET Rocks的interview with Steve Souders也可以提供帮助:
Steve Souders :...默认执行 IIS和Apache,他们把两者都放了 那些服务器,把东西放进去 电子标签很有可能 如果用户必须检查 该资源的有效性, 浏览器将不正确 告诉他们资源不再存在 有效。所以在Apache的情况下,他们是什么 放入电子标签的是INO号 该Web服务器上的文件,以便 如果您有多个Web服务器 托管您最大的网站 网站这样做,INO号码永远不会 两个服务器匹配所以 如果昨天用户去了服务器 一个,今天他们试图验证 该资源,他们去服务器 2,电子标签不匹配, 电子标签会覆盖上次修改日期 而不只是返回一个200字节 304响应,服务器必须 返回整个50k的响应 图像。
答案 1 :(得分:0)
“如果您在一台服务器上托管您的网站,则无需删除ETag。每次都会使用相同的ETag,并且验证检查将有效且正确地进行。”
来源:Dean Hume