HTTP状态码302、303、307区别

HTTP状态码3XX表示重定向,表明浏览器需要执行某些特殊的处理以正确处理请求。

301 Moved Permanently 
永久性定向。该状态码表示请求的资源已被分配了新的URI,以后应使用资源现在所指的URI。

302 Found 
临时性重定向。该状态码表示请求的资源已被分配了新的URI,希望用户(本次)能使用新的URI访问。和301相似,但302表示的资源不是永久移动,只是临时性的。换句话说,已移动的资源对应的URI将来还有可能发生变化,比如,用户把uri保存为书签,但不会像301状态码出现时那样更新书签,而是仍旧保留返回302状态码的页面对应的uri

303 See Other 
该状态码表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源,=, 
303和302状态码有着相同的功能,但是303明确表示客户端应当采用get方法获取资源,这点与302状态码有区别。 
比如,当使用post方法访问CGI程序,其执行后的处理结果为希望客户端能以get方法重定向到另一个uri上去时,返回303状态码。虽然302也可实现相同的功能,但这里使用302状态码是最理想的。

当301、302、303响应状态码返回时,几乎所有浏览器都会把post改成get,并删除请求报文内的主体,之后请求会自动再次发送。 
301、302标准是禁止将post方法改变成get方法的,但实际使用时大家都会这么做。

307 Temporary Redirect 
临时重定向。该状态码与302有相同的含义。尽管302标准禁止post变化get,但实际使用时大家不遵守。 
307会遵照浏览器标准,不会从post变为get。但是对于处理响应时的行为,各种浏览器有可能出现不同的情况。

原文地址:https://www.cnblogs.com/aliwa/p/8495014.html

时间: 2024-10-06 09:38:18

HTTP状态码302、303、307区别的相关文章

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状态码302、303和307的故事

<HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有302.303.307,以及他们的关系,一句"问题出在HTTP/1/1"让我一头雾水,莫名其妙:而第五章在讲重定向响应时,没有说到现在很常见的302,反而是说我从没遇到过的303和307.很是迷惑,对于这3个状态码,WiKi和RFC文档都有详解,下面我以我的思维添油加醋的描述一遍. 一.状态码--302 RFC1945(http://tools.ietf.org/html/rfc1945#page-34

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请求,它表示请求已经被处理,客户端

HttpClient取得自定义的状态码302,并获取Header中的参数Location

1.导入如下两个包: 下载地址:http://files.cnblogs.com/files/zhougaojun/httpclient_lib.zip 2.接收Google返回的302状态码,并获得Location参数,如下是代码关键部分 DefaultHttpClient httpclient = new DefaultHttpClient(); String location = null; int responseCode = 0; try { final HttpGet request

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

规范中: 301是永久重定向,之后的请求中客户端应该使用新的URI(即,可以被浏览器缓存),对于POST/PUT/DELETE请求 客户端不应该自动的重定向 302是由于未知原因重定向,之后的请求中客户端不应该用新的URI,对于POST/PUT/DELETE请求 客户端不应该自动重定向 303是由于未知原因重定向,之后的请求中客户端不应该用新的URI,对于POST/PUT/DELETE请求 客户端应该使用GET请求来替代 307是临时重定向,之后资源可能会回到这个位置,之后的请求中客户端应该使用

HTTP状态码之302、303和307

今日读书,无法理解HTTP302.303.307状态码的来龙去脉,决定对其做深究并总结于本文. <HTTP权威指南>第3章在讲解30X状态码时,完全没有讲清楚为什么要有302.303.307的关系,一句“问题出在HTTP/1/1”让我一头雾水,莫名其妙:而第五章在讲重定向响应时,没有说到现在很常见的302,反而是说我从没遇到过的303和307.很是迷惑,对于这3个状态码,WiKi和RFC文档都有详解,下面我以我的思维添油加醋的描述一遍. 一.状态码——302 RFC1945(http://to

HTTP 常见状态码解析

概述 1xx:指示信息--表示请求已接收,继续处理 2xx:成功--表示请求已被成功接收.理解.接受 3xx:重定向--要完成请求必须进行更进一步的操作 4xx:客户端错误--请求有语法错误或请求无法实现 5xx:服务器端错误--服务器未能实现合法的请求 常见HTTP状态码 200 OK 表示请求成功 一切正常 301 Moved Permanently 重定向,客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL 302 Found 临时重定向,类似于

常见HTTP状态码

一些常见HTTP状态码为:200 – 服务器成功返回网页404 – 请求的网页不存在503 – 服务不可用 常见HTTP状态码大全 1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明http状态码 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分.http状态码 101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换. 2xx (成功)表示成功处理了请求的状态代码.代码 说明http状态码 200

php 状态码

200 – 服务器成功返回网页 301 (永久移动) 请求的网页已永久移动到新位置. 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置. 403 (禁止) 服务器拒绝请求 404 – 请求的网页不存在 503 – 服务不可用 常见HTTP状态码大全 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明 http状态码 100 (继续) 请求者应当继续提出请求. 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. http状