HTTP301重定向在浏览器中能缓存多长时间.md
小A的惨痛经历
运维小A在某次维护过程中,将网站 http://example1.com/ 的请求301重定向到了 http://example2.com/ 。
自己用浏览器试了一下,果然都跳转到 http://example2.com/ 了。
维护完成后,恢复配置,但发现自己的Chrome浏览器还是直接跳转到了 http://example2.com/ 。
重启chrome,不行。清除缓存,还不行。抓狂了。
直到找到了这么一个答案:
Go to chrome://net-internals and at the far right open the drop-down and choose "Clear Cache".
终于跳回来了。
各个浏览器会缓存多长时间
这是一个极为复杂的问题,根据网友反馈汇总
IE7, IE8 不会缓存301
IE 11 会缓存301,时间未知,重启无效
Chrome 会缓存301,时间未知,重启无效
Firefox 会缓存301,时间未知,重启无效
使用301时的建议
虽然部分浏览器清理缓存能去除301缓存,但总不能要求用户去清理浏览器缓存吧?
因此使用HTTP301重定向时要格外注意,以下两种方式可以避免踩坑。
1.使用302跳转替代301跳转
301是永久重定向,不适合临时跳转,302才是临时跳转
#@nginx配置
location / {
rewrite ^ https://www.baidu.com redirect;
}
2.给301跳转加上no-cache
#@nginx配置
location / {
add_header Cache-Control no-cache;
rewrite ^ https://www.baidu.com permanent;
}
参考资料
http://stackoverflow.com/questions/9130422/how-long-do-browsers-cache-http-301s
转载请注明:IPCPU-网络之路 » HTTP301重定向在浏览器中能缓存多长时间