HTTP状态码301和302的区别
官方解释: 301 代表永久性转移 302 代表暂时性转移 共同点: 301和302状态码都表示重定向,就是说浏览器在拿到服务器返回的这个状态码后会自动跳转到一个新的URL地址,这个地址可以从响应location首部中获取(用户看到的效果就是他输入的地址A瞬间变成了另一个地址B)—这是他们的共同点 不同点: 301表示旧地址A的资源已经被永久性移除了(这个资源不可访问了),搜索引擎在抓取新内容的同时也就将旧的网址交换为重定向之后的网址; 302表示旧地址A的资源还在(仍然可以访问),这个重定向只是临时从旧地址A跳转到地址B,搜索引擎会抓取新的内容而保存旧的网址。 常见应用场景: 场景一:想换个域名,旧的域名不用了,这样用户访问旧域名时用301就重定向到新的域名。其实也是告诉搜索引擎收录的域名需要对新的域名进行收录。 场景二: 登录后重定向到指定的页面,这种场景比较常见的就是登陆成功跳转到具体的系统页面。 场景三:有时候需要自动刷新页面,比如5秒后自动返回到订单详细页面之类。 场景四:有时系统进行升级或者切换某些功能时需要临时更换地址。 场景五:像微博之类的使用短域名,用户浏览后需要重定向到真实的地址之类。 301与302在选择上注意的问题–302重定向和网址劫持 从网址A 做一个302 重定向到网址B 时,主机服务器的隐含意思是网址A 随时有可能改主意