【问题标题】:Google Chrome; refresh doesn't send If-Modified-Since header谷歌浏览器;刷新不发送 If-Modified-Since 标头
【发布时间】:2009-10-23 06:01:03
【问题描述】:

由于我目前正在开发一个网站,该网站必须能够在很大的压力下或多或少地完美地执行并从自动化测试场景切换,我会尝试简单的按住 F5 多次-seconds-in-my-favorite-browser,在这里我发现了一个奇怪的 Google Chrome 观察结果:

如果您执行上述操作,Chrome 会跳过发送 If-Modified-Since 标头,并强制网络服务器获取您要显示的页面,从而导致状态代码 200 而不是预期的 304。

在 IE8(也可能是更早的版本)中,此问题存在。

试试这个简单的页面:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html,然后用 Fiddler 仔细研究这个页面;奇怪吧?

我的问题是;这是设计使然,还是 Google 的错误?

【问题讨论】:

    标签: internet-explorer google-chrome http-headers http-status-codes


    【解决方案1】:

    这可能是设计问题。浏览器在刷新时往往会发送不同的请求;例如,尝试在 IE 中按 CTRL+F5,您应该会看到 IE 然后发出无条件的 HTTP 请求。

    您是否在响应中发送了正确的 HTTP 缓存指令,从而无需验证它们的新鲜度? http://www.fiddler2.com/redir/?id=httpperf

    【讨论】:

    • 那么你的意思是,Chrome 在设计上实现了按住 F5 时的“CTRL+F5”挂件?这实际上是有道理的,但我不喜欢这种自动无条件 HTTP 请求。感谢您的回答。
    【解决方案2】:

    你是用 Shift-F5 还是 Ctrl-F5?如果是这样,它会出现that is by design。否则很可能是一个错误。

    【讨论】:

    • 我在这里没有得到你的答案; SHIFT+F5 和 CTRL+F5 在 Chrome 中都没有任何区别,但无论如何谢谢:-)
    猜你喜欢
    • 2012-01-07
    • 2018-10-23
    • 2012-11-27
    • 2011-01-07
    • 2012-11-01
    • 1970-01-01
    • 2018-01-27
    • 1970-01-01
    • 2012-04-19
    相关资源
    最近更新 更多