最新消息:网站迁移至香港,数据恢复中。

HTTP301重定向在浏览器中能缓存多长时间

IT技术 ipcpu 216浏览

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重定向在浏览器中能缓存多长时间