【问题标题】:Google Cache revalidation谷歌缓存重新验证
【发布时间】:2012-08-20 16:11:46
【问题描述】:

我在使用谷歌浏览器时遇到了问题:如果我调用一个地址,谷歌会两次连接到网络服务器 - 但只是有时。我认为这与缓存控制有关。 每次发生这种情况时,都不会在请求中设置标头 HTTP_CACHE_CONTROL。否则设置为 max-age=0。 我不希望 Chrome 两次连接到我的脚本 - 你知道解决方案吗?

我希望你能帮助我! 谢谢!

编辑: 也许重要的是要知道:在那个脚本中有一个 301 重定向。

编辑 2: 我禁用了“HTTP_CACHE_CONTROL max-age=0”——同样的问题。

此外:如果我调用“http://localhost/admin?foo=bar”,则第一个请求中没有 GET 变量“foo” - 但在第二个请求中有。

编辑 3: 如果我使用 javascript 而不是 location-header 进行重定向,一切正常。

编辑 4: 你可以测试一下:下载this并解压。 把它放在“www/chrome-test/”文件夹中,这样就可以调用“http://localhost/chrome-test/redirect/”了。

每次调用“http://localhost/chrome-test/redirect/”时,您都会被重定向到“http://localhost/chrome-test/example/”。 显示由重定向脚本生成的消息。我使用 Sessions 来“传输”这条消息。 然后再次调用“http://localhost/chrome-test/redirect/”(使用地址栏并按回车!!!)。重复这最后一步几次(可能 20 次)。 有时会显示两次消息“这是一条消息...” - 因此重定向脚本会运行两次。但为什么呢?

【问题讨论】:

  • 为什么你认为它连接了 2 次?
  • 因为我记录了每个请求。这两个请求有不同的 REQUEST_TIME - 所以记录器工作正常。
  • 进一步:如果我调用“localhost/admin?foo=bar”,则第一个请求中没有 GET 变量“foo”。但在第二个请求中有。
  • 我认为如果 chrome 需要重新缓存它,它会加载页面两次,一次显示给用户,一次添加到缓存中。尝试完全关闭缓存。

标签: php google-chrome caching redirect


【解决方案1】:

您的页面图标是否出现在 Chrome 浏览器中? 如果没有,Chrome 会查找 favicon.ico,如果您的网站返回 404 页面并使用相同的代码,则 chrome 会执行两次。

<link rel="icon" href="/favicon.ico" sizes="32x32" type="image/png" />

【讨论】:

    猜你喜欢
    • 2020-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多