HTTP响应状态码问题汇总_500_404_302_200等常见状态码

摘要

状态码由3位数字组成,表示请求是否被理解或者被满足。

1xx:表示请求已收到,需要继续处理。

2xx:表示请求已经被服务器接收、理解并接受。

3xx:为完成请求,客户端需进一步细化请求。

4xx:客户端的请求有错误。

5xx:服务器端出现错误。

1xx状态码

100(继续):

告诉客户端应该继续请求。如客户端发送一个值为100~continue的Expect头字段,询问服务器是否可以在后面的请求中发送一个附加文档。这种情况下,如果服务器返回100状态码,则告诉客户机可以继续,如果返回417状态码,则告诉客户端不能接收下次请求中的附加文档。

101(切换协议)

如果客户端发送的请求要求使用另一种协议与服务器进行对话,服务器发送101响应状态码表示自己将遵从客户端请求,转换到另一种协议。

2xx状态码

200(正常):

客户端请求成功,响应消息返回正常的请求结果。

201(已创建):

服务器已经根据客户端请求创建文档,文档的URL为响应消息中Location响应头的值。

202(已接受):

客户端的请求已被接受,但服务器处理目前尚未完成,比如对于批处理的任务。

203(非权威信息):

文档已经正常返回,但一些实体头可能不确切,使用的是本地缓存或者第三方信息,而不是最原始的信息。

204(无内容):

规定浏览器显示已缓存的文档,服务器只会会送一些响应消息头,而不会回复实体内容,如果用户刷新某个页面时,并且服务器能够确定客户端当前显示的页面已经是最新的,这种功能就很有用,不用向客户端传送文档内容,节省了网络流量和服务器处理时间。

205(重置内容):

表示没有新的文档,浏览器应显示原来的文档,但要充值文档的内容,例如,清除表单字段中已经存在的内容。

206(部分内容):

当客户端发送的请求消息中包含一个Range头(可能还包含一个和Range头一起使用的IF-Range头)请求文档的部分内容,如果服务器按客户端的要求完成了这个请求,就会返回一个206的状态码。

3xx状态码

300(多项选择):

客户端请求的文档可以在多个位置找到,这些位置已经在返回的文档内列出。如果服务器要提供一个优先选择的文档,他应该把文档的URL作为Location响应消息头的值返回,这样客户端可以根据Location头的值进行自动跳转。

301(永久移动):

之处被请求的文档已经被移动到别处,此文档新的URL地址为响应头Location的值,浏览器以后对该文档的访问会自动使用新的URL地址。

302(找到):

和301类似,但是Location头中返回的URL是一个临时而非永久的地址。

303(参见其他):

和302类似,很多客户端处理303状态码的方式和302一样。

304(未修改):

如果客户端有缓存的文档,它会在发送的请求消息中附加一个IF-Modified-Since请求头,表示只有请求的文档在IF-Modified-Since指定的时间之后发生过更改,服务器才需要返回新文档。状态码304表示客户端缓存的版本是最新的,客户端应该继续使用它。否则,服务器将使用状态码200返回请求的文档。

305(使用代理):

客户端应该通过Location头所指定的代理服务器获得请求文档

307(临时重定向):

和302类似。按照规定,如果浏览器使用POST方式发出请求,只有响应状态码为303时才能重定向,但实际上许多浏览器对302状态码也按303状态码来处理。由于这个原因,HTTP 1.1 新增了307状态码,以便更加清楚的区分几个状态码;如果服务器发送303状态码,浏览器可以重定向GET和POST请求;如果是307状态码,浏览器只能重定向GET请求。

4xx状态码

400(请求无效):

客户端的请求中有不正确的语法格式。在使用浏览器发送请求时一般不会遇到这种情况,除非使用Telnet或者自己编写的客户端。

401(未经授权):

当客户端试图访问一个受口令和密码保护的页面,且在请求中没有使用Authorization请求头传递用户信息时,服务器返回401状态码,同时结合一个www-Authenticate响应头来提示客户机应该重新发出一个带有Authorization头的请求消息。

402(需要付款):

保留状态码,为以后更高版本的HTTP使用

403(禁止):

服务器理解客户端的请求,但是拒绝处理。通常由于服务器上文件或目录的权限设置导致

404(找不到):

这个状态码很常见,表示服务器上不存在客户端请求的资源。

405(不允许此请求方式):

请求行中的请求方式对指定的资源不适用。例如,有的资源只能GET方式访问,但使用POST方式访问时,服务器将返回405.405状态码通常伴随Allow响应头一起使用,Allow响应头指定有效的请求方式。

406(不能接收):

客户端请求的资源已经找到,但是和请求消息中Accept、Accpet-Charset、Accept-Encoding、Accept-Language请求头的值不兼容。

407(需要代理服务验证):

由代理服务器向客户端发送的状态码,配合Proxy-Authenticate响应头一起使用,表示客户端必须经过代理服务器的授权。客户端再次发送请求时,应该带上一个Proxy-Authorization请求头。

408(请求超时):

在服务器等待的时间内,客户都啊没有发出任何请求。

409(冲突):

由于请求和资源当前的状态相冲突,导致请求不能成功。这个状态码通常和PUT请求有关,列如,要上传的文件覆盖一个正在服务器端打开的文件。

410(离开):

请求的文档已经不再可用,而且服务器不知道应该重定向到哪个地址。410通常表示文档被永久地移除了,而不像404那样表示由于未知的原因文档不可用。

411(需要长度):

请求消息中包含实体内容,却没有包含指定内容长度的Content-Length请求头。

412(为满足前提条件):

请求头中的一些前提条件在服务器中测试失败。

413(请求实体过大):

请求消息的大小超过了服务器愿意或者能够处理的范围,服务器会关闭连接,阻止客户端继续请求。如果服务器认为自己稍后能够在处理该请求,则在响应消息中发送一个Retry-After响应头告诉客户端不能处理只是暂时的,稍后稍后可以再次尝试请求。

414(请求URI过长):

请求的URL(这里就是指URL)太长,服务器无法进行解释处理。这种情况很少发生,一般是客户端误把POST请求当成GET请求进行处理。

415(不支持的媒体类型):

请求消息中实体内容的格式不被服务器所支持。

416(请求的范围不正确):

当客户端请求消息中的Range头指定的范围和请求资源没有交集,服务器会返回416状态码。

417(预期失败):

可以被服务器或者代理服务器回送。当客户端的请求消息中包含Expect请求头,Expect头中的请求服务器不支持,或者代理服务器明确知道服务器不支持,则会回送417状态码。

5xx状态码

500(内部服务器错误):

最常见的服务器错误。大部分情况下,是服务器端的CGI、ASP、JSP等程序发生错误,一般服务器会在相应消息中提供具体的错误信息。

501(未实现):

服务器不支持HTTP请求消息使用的请求方式

502(无效网关):

服务器作为网关或者代理访问上游服务器,但是上游服务器返回了非法响应。

503(服务不可用):

由于服务器目前过载或者处于维护状态,不能处理客户端的请求。也就是说这种情况只是暂时的,服务器会回送一个Retry-After头告诉客户端何时可以再次请求。如果客户端没有接到Retry-After响应头,会把它当作500状态码来处理。

504(网关超时):

服务器作为网关或者代理访问上游服务器,但是未能及时获得上游服务器的响应。

505(不支持HTTP版本):

服务器不支持请求行中的HTTP版本。响应消息中会描述服务器为什么不支持该HTTP版本以及支持的HTTP版本。

 

weinxin
我的微信
这是我的微信扫一扫
seo青衫

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: