301 俗称“永久重定向”(Moved Permanently),意思


是原 URI 已经“永久”性地不存在了,今后的所有请求都必


须改用新的 URI。 浏览器看到 301,就知道原来的 URI“过时”了,就会做适


当的优化。比如历史记录、更新书签,下次可能就会直接用


新的 URI 访问,省去了再次跳转的成本。搜索引擎的爬虫看


到 301,也会更新索引库,不再使用老的 URI。


302 俗称“临时重定向”(“Moved Temporarily”),意


思是原 URI 处于“临时维护”状态,新的 URI 是起“顶


包”作用的“临时工”。


浏览器或者爬虫看到 302,会认为原来的 URI 仍然有效,


但暂时不可用,所以只会执行简单的跳转页面,不记录新的


URI,也不会有其他的多余动作,下次访问还是用原 URI。


301/302 是最常用的重定向状态码,在 3××里剩下的几个


还有:


303 See Other:类似 302,但要求重定向后的请求改为


GET 方法,访问一个结果页面,避免 POST/PUT 重复操


作;


307 Temporary Redirect:类似 302,但重定向后请求


里的方法和实体不允许变动,含义比 302 更明确;


308 Permanent Redirect:类似 307,不允许重定向后


的请求变动,但它是 301“永久重定向”的含义。 不过这三个状态码的接受程度较低,有的浏览器和服务器可


能不支持,开发时应当慎重,测试确认浏览器的实际效果后


才能使用