Ole*_*ers 25 browser redirect browser-cache http-status-code-302
由于我们的网络服务器配置错误,主域名将302重定向发送到新位置.我们解决了这个问题.清空浏览器缓存时,一切正常.
对于没有清空缓存的"普通"客户端:302重定向在浏览器中保留多长时间?
我正在寻找默认设置下每个主要浏览器(Chrome,Firefox,Safari,Opera,Edge,IE 12)的特定缓存时间(如果有的话).
Jon*_*Lin 28
除非Web服务器还返回一个Cache-Control
或Expires
标头,否则不应该缓存它.根据RFC 2616,第10.3.3节302找到
请求的资源暂时驻留在不同的URI下.由于重定向有时可能会被更改,因此客户端应该继续使用Request-URI来处理将来的请求.如果由Cache-Control或Expires头字段指示,则此响应仅可缓存.
mah*_*off 13
Jon Lin在这里引用的标准使用了"SHOULD",它在RFC术语中没有"MUST"那么强.这不仅仅是理论上的干扰; 例如,Cloudflare 会缓存重定向:
如果没有提供缓存头(没有Cache-Control或Expires)并且url是可缓存的(.jpg,.css,.js等),则CloudFlare会缓存301和302s.我们在短时间内(约20分钟)缓存301几小时和302秒.
因此,您应该确保可以处理它或使用显式标头(例如Cache-Control: private, no-cache
)来指导浏览器和中间件来缓存它.
使用 Steve Sounder 的Redirect Caching Tests 工具(感谢 @LeonidVasilev),结果似乎可能不是预期的。没有过期标头或 cookie,结果如下:
Chrome 71:未缓存?
Firefox 64:缓存?
Safari 12:缓存?
因此,尽管RFC 2616, section 10.3.3 302 Found指出,并非所有浏览器都遵循这些准则或可能被视为预期行为的内容:(