问题标签 [etag]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
6348 浏览

ruby-on-rails - Ruby on Rails,如何禁用/关闭 ETag

问候,

如何在 Ruby on Rails v2.3.5 中关闭 ETag(s)

当我向 RoR/Mongrel 发出直接请求时,会出现一个 ETag 标头。

TIA,

-丹尼尔

0 投票
2 回答
3215 浏览

yslow - YSlow 在 ETags 上给出不一致的结果

当我对我的网站运行 YSlow 时,我在“配置 ETags”项上得到一个“F”;它声称我的许多(全部?)图像、样式表等都没有 etag。

但是,如果我直接在其中一张图像上运行测试,我会在 etag 测试中得到 A。此外,在 Firebug Net 面板的响应标头上,我可以在该项目上看到整页和直接 URL 版本的 etag。

我可能会做些什么来导致这种奇怪的行为吗?

(如果有人想自己检查,我点击的 URL 在这里这里。我不介意进行健全性检查,看看是否只是我的浏览器感到困惑。)

0 投票
3 回答
3460 浏览

http - If-Unmodified-Since/If-Modified-Since 的意义何在?他们不是被ETags取代了吗?

似乎有两种不同的方法可以使用 HTTP 标头来实现条件请求,这两种方法都可以用于缓存、范围请求、并发控制等......:

  1. If-Unmodified-Since 和 If-Modified-Since,客户端发送资源的时间戳
  2. If-Modified 和 If-None-Modified,客户端发送资源的ETag表示。

在这两种情况下,客户端都会发送它拥有的有关资源的一条信息,这允许服务器确定自客户端上次看到资源以来资源是否已更改。然后,服务器根据客户端提供的条件标头决定是否执行请求。

我不明白为什么有两种不同的方法可用。当然,ETag 取代了时间戳,因为服务器可以很容易地选择从时间戳生成 ETag。

所以,我的问题是:

  • 在哪些情况下,您可能更喜欢 If-Unmodified-Since/If-Modified-Since 而不是 ETags?
  • 在哪些情况下您可能需要两者?
0 投票
1 回答
159 浏览

performance - 这是真的?“Gzip 压缩的项目不会有相同的 etag(即使内容没有改变)”

如果我们使用 apache 进行压缩,我们是否应该禁用 etags,因为 etags 每次都会不同?放气也是如此吗?

谢谢

0 投票
4 回答
22168 浏览

performance - 正确获取 ETag

我一直在读一本书,我对 ETag 章节有一个特殊的问题。作者说 ETag 可能会损害性能,您必须对它们进行微调或完全禁用它们。

我已经知道什么是 ETags 并了解其中的风险,但是让 ETags 正确有那么难吗?

我刚刚创建了一个应用程序,它发送一个 ETag,其值是响应正文的 MD5 哈希值。这是一个简单的解决方案,很容易用多种语言实现。

  • 使用响应正文的 MD5 哈希作为 ETag 是否错误?如果是这样,为什么?

  • 为什么作者(他显然比我聪明许多数量级)不提出这样一个简单的解决方案?

最后一个问题很难回答,除非你是作者 :),所以我试图找出使用 MD5 哈希作为 ETag 的弱点。

0 投票
1 回答
2011 浏览

asp.net - IIS 删除 If-None-Match 和 If-Modified-Since 标头

我有一个 ASHX 处理程序或一个 ASPX 页面(这两种情况都会出现问题)。Web 客户端发送包含 If-None-Match 和/或 If-Modified-Since 标头但 context.Request.Headers.Get("If-None-Match") 或 context.Request.Headers.Get("If- Modified-Since") 在处理程序中为空。

相同的脚本可以在我的本地开发机器上运行,但它不能在在线机器上运行(两者都在 Win 2008 上运行 IIS7,.NET 3.5)

0 投票
2 回答
1263 浏览

emacs - 是否可以在 emacs 中自动重新生成和加载标签表,而不必继续运行访问标签表?

我正在尝试找到一种方法来为我的应用程序自动重新生成标签并在 emacs 中访问这些标签以尝试改进我的工作流程。是否可以让 emacs 检测 TAG 文件中的更改并重新访问它?

0 投票
6 回答
4491 浏览

ruby-on-rails - 如何测试 Rails ETag 缓存?

是否可以通过单元测试覆盖我的控制器,这高度依赖于 Etags?

这就是我想要做的:如果页面不是陈旧的(意味着它是新鲜的),我将添加一些标题来响应。

当我尝试全部测试时(rspec),无论我有多少类似的请求,我仍然收到 200 OK 而不是 304,并且我的标头没有被修改。此外,如果我跟踪 request.fresh?(response),它总是错误的。

但是,它在浏览器中完美运行。我已经尝试过声明 ActionController::Base.perform_caching = true,它不会改变整体情况。

谢谢

0 投票
3 回答
1042 浏览

etag - 我应该为 htm 和 php 页面删除 Etag 吗?

我使用 php 和 .htaccess 动态生成 htm 文件。我在某处读到我应该为 text/html 类型的文件删除 Etags?那是对的吗?我想知道我是否使用 etags,如果我不更改内容,我可以节省一些带宽。如果你们能告诉我是否可以将 etags 用于 htm 文件,我将不胜感激。

0 投票
3 回答
1068 浏览

django - 有什么理由不在 Django 中将 USE_ETAGS 与 CommonMiddleware 一起使用?

我能想到的唯一原因是计算ETag's 可能很昂贵。如果页面变化很快,浏览器的缓存很可能会被ETag. 在这种情况下,计算ETag将是浪费时间。另一方面,304在可能的情况下给出响应可以最大限度地减少传输所花费的时间。ETag当使用 Django 实现 's 可能成为净赢家时,有哪些好的指导方针CommonMiddleware