http状态码307和301有什么区别?

 我来答
Augensternfox
2017-12-14 · TA获得超过1462个赞
知道小有建树答主
回答量:47
采纳率:100%
帮助的人:4.8万
展开全部

307和301涉及到其他状态码,从以下几点说明他们之间的关系和区别。

1. 对于301、302的location中包含的重定向url,如果请求method不是GET或者HEAD,那么浏览器是禁止自动重定向的,除非得到用户的确认,因为POST、PUT等请求是非冥等的(也就是再次请求时服务器的资源可能已经发生了变化)。2. 虽然rfc明确了上述的规定,但是很多的浏览器不遵守这条规定,无论原来的请求方法是什么都会自动用GET方法重定向到location指定的url。就是说现存的很多浏览器在遇到POST请求返回301、302状态码的时候自动用GET请求location中的url,无需用户确认。3. HTTP 1.1中新增了303、307状态码,用来明确服务器期待客户端进行何种反应。4. 303状态码其实就是上面301、302状态码的”不合法”动作,指示客户端可以自动用GET方法重定向请求location中的url,无需用户确认。也就是把前面301、302状态码的处理动作”合法化”了。5. 307状态码就是301、302原本需要遵守的规定,除GET、HEAD方法外,其他的请求方法必须等客户确认才能跳转。6. 303、307其实就是把原来301、302不”合法”的处理动作给”合法化”,因为发现大家都不太遵守,所以干脆就增加一条规定。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式