当我按下回车键时,如何阻止 Chrome 发送 Cache-control: max-age=0?

当我按下回车键时,如何阻止 Chrome 发送 Cache-control: max-age=0?

我正在连接稍微不稳定我正在尝试使用本地代理来改善我的浏览体验。根据我的研究但是,如果我在浏览器中对现有 URL 按下“Enter”键,它会Cache-Control: max-age=0向代理发送一个标头,代理会依次往返服务器以重新验证内容。

我并不特别想要这个;如果对象过时了,缓存会重新获取它,但如果它不是过时的,我不明白为什么每次都要重新验证对象。如果我怀疑页面过时了,我会使用 shift-F5,而且我不怕使用它。

那么,Chrome 后台是否有一个可调参数可以关闭这种烦人的行为?

答案1

我发现,如果您通过后退按钮或链接浏览某个页面,Chrome 不会发送 max-age=0 标头,并且通常(如果另一端的 apache 服务器配置了缓存)会使用该页面的缓存版本。

但是,当您直接在地址栏中输入 URL(例如 www.example.com/abcd/index.html)然后按 时Return,Chrome 将始终发送Cache-Control: max-age=0标头,从而绕过缓存。

答案2

可以使用用户脚本(ala greymonkey)或扩展程序修改 Chrome 发送到网络服务器的标头。以下是一个应该可以使用的扩展程序:修改头

根据介绍和截图,添加这样的标头cache-control max-age=1000应该相对简单。它还支持域白名单,以防止标头被发送到特定网站。您可能需要在 chrome://flags 中启用某些实验才能完成这项工作。

添加标题的演示

答案3

浏览器的行为取决于收到的响应标头。如果浏览器收到如下响应标头

Cache-Control: private
Expires: Thu, 01 Jan 1970 00:00:00 UTC

然后,浏览器将始终使用 进行请求Cache-Control: max-age=0。这通常发生在 Tomcat 容器中,BaseAuthenticator当变量disableProxyCaching为真时, 会添加这些响应标头。如果您遇到类似的问题,可以访问此关联寻求解决方案。

希望这能在一定程度上有所帮助:)

答案4

Cache-control: max-age=0当您使用自签名证书时,Chrome 会添加标头。从 HTTPS 切换到 HTTP 将删除此标头。

相关内容