HTTP状态码
状态码分类
http状态码共分为五大类,目前使用的http协议版本是1.1,支持状态码如下
状态码范围 | 信息分类 | |
1xxx | 100~101 | 信息提示 |
2xxx | 200~206 | 成功 |
3xxx | 300~305 | 重定向 |
4xxx | 400~415 | 客户端问题 |
5xxx | 500~505 | 服务端问题 |
【常见的状态码】
一般情况下,只需要了解常见的状态码足够了,下面列举常见的
200 表示ok,服务器已经成功处理请求 301/302:重定向,将请求的URL移走,Response中包含了一个localtion url,说明资源现在所处的位置 304 Not Modified(未修改):1客户端缓存资源是最新的,要求客户端使用缓存 403:访问权限拒绝,服务可能做了限制,或者防火墙原因 404:未找到服务器资源,无法访问 501:服务器遇到一个错误,使其无法对请求提供服务
【1xxx信息性状态码】
100:Continue(继续),收到请求的起始部分,客户端应该继续请求
101:Switching Protocols(切换协议),服务器根据客户端的指示将协议切换update Header列出的协议
【2xxx成功状态码】
客户端发起请求,这些请求通常是成功的,服务器有一组来表示成功的状态,分别对应不同的类型请求
200:状态信息时成功的,服务器成功处理了客户端请求
201:已创建,对于那些服务器创建对象的请求来说,资源已创建完成
202:已接受,请求已经接受,但是服务器尚未处理
203:非权威信息,服务器已经将事务请求处理,知识实体Header包含信息不是来自原始服务器,而是来自资源的副本,这个副本可以理解为代理
204:No Content(没有内容)response中包含了一些Header和一个状态码,但是不包含实体的主题内容(没有response body)
205:Reset Content(重置内容)另一个主要用于浏览器的代码,意思是浏览器应该重置当前页面上所有HTML表单
206:Partial Content(部分内容)部分内容请求成功
【3xxx重定向状态码】
重定向状态码用来告诉浏览器客户端,它们访问的资源已被移走,web服务器发送一个重定向状态码和一个可选的Local Header,告诉客户端新的资源地址在哪?随后浏览器客户端会自动用Local 中提供 的地址重新发送新的Request请求,·这个过程对用户来说是透明的
300:多项选择,客户端请求了实际指向多个资源的URL,这个代码是和选项列表一期返回的,然后用户就可以选择自己希望的选项了
301:永久重定向,请求的URL已经移走,Response中包含了一个Localtion URL,说明资源现在所处的位置
302:临时重定向,与301状态码类似,这里的移除是临时的,客户端会使用Localtion中的URL,重新发送新的Request
304:未修改,客户端的缓存是最新的,要客户端请求缓存
305:使用代理,必须通过代理访问资源,代理的地址在Response的Location中
307:临时重定向,类似于302
【4xx客户端错误状态码】
时常客户端会发送一些服务器无法处理的东西,比如格式错误的Request,或者最常见的是,请求一个不存在的URL
400:坏请求,告诉客户端,它发送了一个错误的请求
401:未经授权,需要客户端对自己认证
403:禁止,请求被服务器拒绝了
404:未找到,客户端请求未找到服务器资源
405:不允许使用方法,不支持该Request方法
407,要求进行代理,与40类似,用于需要进行认证的代理服务器
408:请求超时,如果客户端完成请求时花费的时间太长,服务器可以返回这个状态码
409:冲突,发出请求在资源上造成冲突
415:不支持的媒体类型,服务器无法理解或者不支持客户端所发送的实体内容类型
【5xxx服务器错误状态码】
客户端发送一个有效的Request,web服务器自身却出错了,可能是web服务器运行出错了,或者网站挂掉了,此时,5xx就是用描述服务器错误的
500:内部服务器错误,服务器遇到一个错误,使其无法为请求提供服务
501:为实现,客户端发起一个请求超过服务器的能力范围(比如,使用了服务器不支持的请求方法,会返回这个状态码)
502:网关故障,代理使用的服务器遇到了上游的无效响应
503:为提供此服务,服务器目前无法为请求提供服务,但过一段时间就可以恢复服务
504:网关超时,与408类似,但是响应来自网关或者代理,此网关或者代理在等待另一台服务器的响应时就出现超时
505:不支持HTTP版本,服务器收到客户端请求之后,使用了不支持HTTP协议的版本