由于我们的Web服务器配置错误,主域名会向新位置发送302重定向。我们已经修复了这个问题。当清空浏览器缓存时,现在一切正常。
对于不清空缓存的“普通”客户端:302重定向在浏览器中保留多长时间?
我正在寻找每个主要浏览器(Chrome,Firefox,Safari,Opera,Edge,IE 12)默认设置下的具体缓存时间(如果有的话)。
由于我们的Web服务器配置错误,主域名会向新位置发送302重定向。我们已经修复了这个问题。当清空浏览器缓存时,现在一切正常。
对于不清空缓存的“普通”客户端:302重定向在浏览器中保留多长时间?
我正在寻找每个主要浏览器(Chrome,Firefox,Safari,Opera,Edge,IE 12)默认设置下的具体缓存时间(如果有的话)。
Cache-Control
或Expires
头部信息,否则不应该缓存任何内容。根据RFC 2616第10.3.3节302 Found的规定:
所请求的资源暂时位于不同的URI下。由于重定向可能会不时地更改,因此客户端应继续使用原始请求URI进行未来请求。只有在缓存控制或过期头字段指示的情况下,才能缓存此响应。
Jon Lin所引用的标准使用了“SHOULD”,这在RFC术语中不如“MUST”强制。这不仅是理论上的区别;例如,Cloudflare 确实缓存重定向:
如果没有提供缓存头(没有Cache-Control或Expires),并且URL可缓存(.jpg、.css、.js等),则CloudFlare会缓存301和302。我们将301缓存几个小时,302缓存较短时间(约20分钟)。
因此,您应该确保能够处理它,或者使用显式头(例如Cache-Control:private,no-cache
)指示浏览器和中间件不要缓存它。
Cache-Control
导致重定向被缓存。但是可以查看此线程以获取更全面的指定不缓存标头的方法:https://dev59.com/03VD5IYBdhLWcg3wNY1Z - Kevin Qi添加
Cache-Control: no-store
响应头中带有header并且不会被缓存。截至2020年7月20日,所有主流浏览器都支持此功能。
但要注意中间缓存(代理/CDN):如果中介机构具有非零最小TTL,则无论您做什么,响应都将被缓存。例如,请参见:
表格的最后一行(源将Cache-Control:no-cache,no-store和/或private指令添加到对象)。 在这种情况下,防止缓存的唯一方法是将TTL设置为0(当然还要添加 Cache-Control:no-store
头)。
这取决于每个客户端的浏览器缓存设置:IE有一个选项可以“永不”检查新页面,它对重定向具有相同的影响。
而据我所知,IE的“自动”设置(默认?)也没有多大改善。