单一 Web 服务器和 ETag

发布于 2024-07-11 10:39:52 字数 114 浏览 5 评论 0原文

有谁知道是否值得在托管于单个 Web 服务器上的 Web 应用程序上禁用 ETag? 目前我们的应用程序中没有使用 ETag。

如果值得禁用它们 - 为什么?

非常感谢。

Does anyone know if it is worth disabling ETags on an web application that is hosted on a single web server? Currently we don't make use of ETags in our application.

If it is worth disabling them - why?

Many thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

煮茶煮酒煮时光 2024-07-18 10:39:52

我不知道这是否有帮助,但您可以在这里阅读有关 etag 的信息:
http://developer.yahoo.net/blog/archives/2007/07 /high_performanc_11.html

这里是 Jeff Atwood 对 ETags 的看法

ETag 是提供的校验和字段
与每个服务器文件,以便客户端
可以判断服务器资源是否
与缓存版本不同
客户端在本地保存。 雅虎推荐
关闭 ETag,因为它们会导致
由于以下原因导致服务器场出现问题
它们的生成方式
机器特定标记。 所以除非
你运行一个服务器场,你应该
忽略此指导。 只会让
您的网站表现较差,因为
客户将会遇到更困难的时期
确定其缓存是否已过时或
新鲜的。 对于客户端来说是可以的
使用现有的上次修改日期
判断是否缓存的字段
是陈旧的,但最后修改是一个弱
验证器,而实体标签(ETag)
是一个强验证器。 为什么交易
以强换弱?

另外对 .NET Rocks 的 Steve Souders 的采访可能会有所帮助:

Steve Souders:...默认实现
IIS 和 Apache,他们都把
那些服务器,把一些东西放在
电子标签,这将使它很有可能
如果用户必须检查
该资源的有效性,
浏览器将会不正确
告知该资源不再存在
有效的。 所以在 Apache 的例子中,他们
电子标签中输入的是 INO 编号
该网络服务器上的文件,以便
如果您有多个网络服务器
托管您的网站哪个最大
网站确实如此,但 INO 编号永远不会
将在两个服务器之间进行匹配,所以
如果昨天用户访问了服务器
今天他们试图验证
该资源然后他们转到服务器
2、电子标签不匹配,
电子标签会覆盖上次修改日期,因此
而不是仅仅返回 200 字节
304响应,服务器必须
返回整个的 50k 响应
图片。

I don't know if this helps, but you can read about etags here:
http://developer.yahoo.net/blog/archives/2007/07/high_performanc_11.html

and here is what Jeff Atwood thinks about ETags:

ETags are a checksum field served up
with each server file so the client
can tell if the server resource is
different from the cached version the
client holds locally. Yahoo recommends
turning ETags off because they cause
problems on server farms due to the
way they are generated with
machine-specific markers. So unless
you run a server farm, you should
ignore this guidance. It'll only make
your site perform worse because the
client will have a more difficult time
determining if its cache is stale or
fresh. It is possible for the client
to use the existing last-modified date
fields to determine whether the cache
is stale, but last-modified is a weak
validator, whereas Entity Tag (ETag)
is a strong validator. Why trade
strength for weakness?

also interview with Steve Souders at .NET Rocks may help:

Steve Souders: ... the default implementation of
IIS and Apache, they put both of
those servers, put something in the
e-tag that will make it very likely
that if the user ever has to check
the validity of that resource, the
browsers are going to be incorrectly
told that the resource is no longer
valid. So in Apache’s case, what they
put in the e-tag is the INO number of
the file on that web server so that
if you have more than one web servers
hosting your site which most large
websites do, that INO number is never
going to match across two servers so
if yesterday the user went to server
one and today they tried to validate
that resource and they go to server
2, the e-tag is not going to match,
e-tag overrides last modified date so
instead of just returning a 200-byte
304 response, the server has to
return a 50k response of the entire
image.

风吹过旳痕迹 2024-07-18 10:39:52

“如果您将网站托管在一台服务器上,则无需删除 ETag。每次都会使用相同的 ETag,并且验证检查将有效且正确地进行。”

资料来源:迪恩·休谟

"If you’re hosting your website on one server, it isn’t necessary to remove ETags. The same ETag will be used every time and the validation check will take place efficiently and correctly."

Source: Dean Hume

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文