-2

在此处输入图像描述

  • 响应来自缓存
  • HTTP 代码 304(不管响应来自缓存还是服务器)
  • 别的东西

编辑:更改标题和屏幕以阐明“灰线”的含义。

4

2 回答 2

3

我整天都在试验这个,因为我的 Web 应用程序中的浏览器缓存有问题。

从我看到的 HTTP 状态码在304. 但是,IE 有点愚蠢,因为这可能意味着在开发人员工具中不容易区分的 2 个不同的东西:

  • 浏览器向服务器发出请求,服务器回复了304 Not Modified响应
  • 浏览器没有请求,因为它确定缓存中的副本仍然有效,它直接使用缓存的结果

在第二种情况下,您不能相信详细视图中显示的内容,因为请求和响应标头+内容随后由存储在缓存中的数据组成,而不是来自实际请求。具体来说,如果Expires“Response headers”选项卡中有header,实际上是从缓存的数据中计算出来的(比如可以从Cache-Control: max-age=xxheader中计算出来,Cache-Controlheader就不会出现在列表中)

我认为您可以区分这两种情况:似乎当“Taken”时间为“<1ms”时,很可能使用了缓存。如果是其他任何东西,很可能是提出了实际请求。

上面的部分是错误的,忽略它。

其他浏览器(如 Firefox 和 Chrome)在其开发人员工具中正确执行此操作:仅使用浏览器缓存处理的请求被注释为“来自缓存”。

我希望这可以帮助你,因为我已经失去了几个小时试图弄清楚 IE 在做什么。此信息仅从我使用具有默认设置的 IE 9、本地 JBoss 网络服务器的观察中扣除,并且在对静态文件的任何 HTTP 请求中都可以看到这种现象:JS、CSS ... 图像似乎没有出现在开发人员工具中当它们被加载一次时再次(会话缓存?)

有关浏览器缓存的一般信息,我建议阅读:http ://www.f5.com/pdf/white-papers/browser-behavior-wp.pdf

编辑:我在这里找到了另一个讨论这个的话题。它证实了我自己所注意到的。

于 2012-12-04T17:57:35.820 回答
1

HTTP 错误 304 - 未修改

这并不真正表示错误,而是表示请求的 URL 的资源自上次访问或缓存后没有更改。只有在客户端(例如您的304Web 浏览器)允许时才应返回状态代码。客户端在发送到 Web 服务器的 HTTP 数据流中指定这一点,例如通过If_Modified_Since请求中的标头。

缓存或索引 Web 资源(如搜索引擎)的系统通常使用304响应来确定他们之前为特定 URL 收集的信息现在是否已过时。

更多信息:HTTP 错误 304 - 未修改

于 2012-11-24T14:29:14.143 回答