- 响应来自缓存
- HTTP 代码 304(不管响应来自缓存还是服务器)
- 别的东西
编辑:更改标题和屏幕以阐明“灰线”的含义。
编辑:更改标题和屏幕以阐明“灰线”的含义。
我整天都在试验这个,因为我的 Web 应用程序中的浏览器缓存有问题。
从我看到的 HTTP 状态码在304
. 但是,IE 有点愚蠢,因为这可能意味着在开发人员工具中不容易区分的 2 个不同的东西:
304 Not Modified
响应在第二种情况下,您不能相信详细视图中显示的内容,因为请求和响应标头+内容随后由存储在缓存中的数据组成,而不是来自实际请求。具体来说,如果Expires
“Response headers”选项卡中有header,实际上是从缓存的数据中计算出来的(比如可以从Cache-Control: max-age=xx
header中计算出来,Cache-Control
header就不会出现在列表中)
我认为您可以区分这两种情况:似乎当“Taken”时间为“<1ms”时,很可能使用了缓存。如果是其他任何东西,很可能是提出了实际请求。
上面的部分是错误的,忽略它。
其他浏览器(如 Firefox 和 Chrome)在其开发人员工具中正确执行此操作:仅使用浏览器缓存处理的请求被注释为“来自缓存”。
我希望这可以帮助你,因为我已经失去了几个小时试图弄清楚 IE 在做什么。此信息仅从我使用具有默认设置的 IE 9、本地 JBoss 网络服务器的观察中扣除,并且在对静态文件的任何 HTTP 请求中都可以看到这种现象:JS、CSS ... 图像似乎没有出现在开发人员工具中当它们被加载一次时再次(会话缓存?)
有关浏览器缓存的一般信息,我建议阅读:http ://www.f5.com/pdf/white-papers/browser-behavior-wp.pdf
编辑:我在这里找到了另一个讨论这个的话题。它证实了我自己所注意到的。
这并不真正表示错误,而是表示请求的 URL 的资源自上次访问或缓存后没有更改。只有在客户端(例如您的304
Web 浏览器)允许时才应返回状态代码。客户端在发送到 Web 服务器的 HTTP 数据流中指定这一点,例如通过If_Modified_Since
请求中的标头。
缓存或索引 Web 资源(如搜索引擎)的系统通常使用304
响应来确定他们之前为特定 URL 收集的信息现在是否已过时。