301,302,303,307重定向区别

规范中:

301是永久重定向,之后的请求中客户端应该使用新的URI(即,可以被浏览器缓存),对于POST/PUT/DELETE请求 客户端不应该自动的重定向

302是由于未知原因重定向,之后的请求中客户端不应该用新的URI,对于POST/PUT/DELETE请求 客户端不应该自动重定向

303是由于未知原因重定向,之后的请求中客户端不应该用新的URI,对于POST/PUT/DELETE请求 客户端应该使用GET请求来替代

307是临时重定向,之后资源可能会回到这个位置,之后的请求中客户端应该使用旧的URI,对于POST/PUT/DELETE请求 客户端不应该自动重定向

许多浏览器客户端没有遵循规范,而是当作303来处理的。 303和307是在HTTP1.1规范中添加的用来的和302区分开的。

302 Found

303 See Other

307 Temporary Redirect

资料:

原文地址:https://www.cnblogs.com/eret9616/p/11378677.html

时间: 2024-10-09 00:15:25

301,302,303,307重定向区别的相关文章

HTTP 的重定向301,302,303,307(转)

HTTP 的重定向301,302,303,307(转) (2012-12-11 11:55:04) 转载▼ 标签: 杂谈 分类: 网络 301 永久重定向,告诉客户端以后应从新地址访问.302 作为HTTP1.0的标准,以前叫做Moved Temporarily ,现在叫Found. 现在使用只是为了兼容性的处理,包括PHP的默认Location重定向用的也是302.但是HTTP 1.1 有303 和307作为详细的补充,其实是对302的细化303:对于POST请求,它表示请求已经被处理,客户端

HTTP状态码302,303,307间的那些事

<HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有302.303.307,以及他们的关系,一句“问题出在HTTP/1/1”让我一头雾水,莫名其妙.所以在网上收集到了这篇资源,mark. 一.状态码——302 RFC1945(http://tools.ietf.org/html/rfc1945#page-34),也就是HTTP1.0在介绍302时说,如果客户端发出POST请求后,收到服务端的302状态码,那么不能自动的向新的URI发送重复请求,必须跟用户确认是否该重发,因为

Http协议之301,302和307

Http协议是有状态码的,比较熟悉的状态码是200,代表链接OK,还有404和403,一个是not found,另一个是forbidden.Not found不用多说,可能是地址栏输入有误,或者是网页已经被移动.Forbidden的原因有很多,有可能是IP被服务器拉入黑名单,有可能是IP过分密集的访问该网站,被网站防火墙屏蔽,有可能是域名解析到了空间,但是空间没有绑定域名,也有可能是网页脚本文件在当前目录下没有执行权限. 上面说的都是2字头和4字头的状态码,但是比较关键的是3字头的状态码---3

301/302的区别 python魔法语法

重定向301/302的区别 301主要应用场景是在域名跳转. 301重定向是永久的重定向,搜索引擎在抓取新的内容的统统是也将旧的网址替换为了重定向之后的网址. 302主要应用场景:比如:未登录的用户访问用户中心时重新定向到登录页面. 302重定向只是暂时的重定向,搜索引擎会抓取新的内容而保留旧的地址,因为服务器返回302,所以,搜索引擎认为新的网址是暂时的 魔法语法 在这里列举取值.赋值.with的方法 对象['xx'] 取值,会触发哪个方法 __getattr__,在取值时如果对象中没有这个值

forward和redirect的区别?http状态码301,302分别代表什么?

一.forward和redirect的区别 从地址栏显示来说:forward是服务器内部重定向,客户端浏览器的网址不会发生变化:redirect发生一个状态码,告诉服务器去重新请求那个网址,显示的的新的网址 数据共享:forward使用的是同一个request,可以共享request的数据,redirest不可以 应用场景:forward一般用于用户登录:redirect用于用户注销登录返回主页面或者跳转其他页面 forward效率更高 本质上说:forward转发是服务器上的行为,而redir

网站优化之尽量避免重定向(301/302)

重定向会增加http请求的次数,会影响到整个网站的性能,但是必要的重定向又可以提高用户体验,所以我们需要在性能和用户体验之间去权衡,达到最好的目的:下面讲讲php实现301永久重定向和302临时重定向以及怎么去避免重定向: 一.对于许多站点而言,以本站域名baidu.com为例:用户在浏览器中输入网址http://www.baidu.com/或者http://www.baidu.com/index.php,实际上访问的都是本站的首页:用户在浏览器中输入网址http://www.baidu.com

301 302 304

301,302不同之处301 redirect: 301 代表永久性转移(Permanently Moved)    请求一次后,服务器告诉客户端浏览器,永久重定向,下次再请求网页时不再请求远端服务器,客户端浏览器缓存了重定向的目标地址,但是,如果浏览器清空缓存后,浏览器重定向将失效,需要再次请求服务器. 302 redirect: 302 代表暂时性转移(Temporarily Moved )     每次客户端浏览器都需要请求服务器,服务器返回302,客户端浏览器,再根据响应头,请求相应的U

状态码301 302

301:永久重定向 302:临时重定向 相同点:输入网址A,都会重定向到网址B 不同点: ① 301:旧地址A的资源不可访问了(永久移除),重定向到网址B,搜索引擎会抓取网址B的内容,同时将网址保存为B网址. ② 302:旧地址A的资源仍可访问,这个重定向只是临时从旧地址A跳转到B地址,这时搜索引擎会抓取B网址内容,但是会将网址保存为A的. Tip:尽量使用301跳转,以防止网址劫持: 302跳转A->B,搜索引擎抓取B的内容却收录A的网址,同时使用302跳转很容易让搜索引擎误认为利用多域名指向

linux shell 管道命令(pipe)使用及与shell重定向区别

linux shell 管道命令(pipe)使用及与shell重定向区别 看了前面一节:linux shell数据重定向(输入重定向与输出重定向)详细分析 估计还有一些朋友是头晕晕的,好复杂的重定向了.这次我们看下管道命令了.shell管道,可以说用法就简单多了. 管道命令操作符是:"|",它仅能处理经由前面一个指令传出的正确输出信息,也就是 standard output 的信息,对于 stdandard error 信息没有直接处理能力.然后,传递给下一个命令,作为标准的输入 st