http状态码指的是客户端在于web服务器建立连接时,客户端发送请求报文后,web服务器端根据http协议响应状态的3位数字代码。
- http状态码分类
http状态码大体可分为以1开头到以5开头的的五大类。
1.1 以1开头状态码
该类状态码表示客户端发送的请求已被服务器端所接受,但是需要进行进一步的处理。以1开头的响应属于服务器端临时响应,只包含状态行和某些可选的响应头信息,并以空行结束。
1.2 以2开头状态码
该类状态码表示客户端发送的请求已经被服务器端所接收、理解并接受。
1.3 以3开头状态码
该类状态码表示客户端需要采取进一步的操作才能完成请求,一般这些状态码是用来做重定向的,后续的请求地址(重定向目标)会在本次响应的location域中指明。
1.4 以4开头状态码
该类状态码表示客户端发送的请求出现了错误,服务器端无法进行处理。除非服务器端响应的是一个head请求,否则需要向客户端返回一个解释出现错误的实体,以及是临时的还是永久的状况。
1.5 以5开头状态码
该类状态码属于服务器端的错误,表示服务器端在处理用户请求时出现了错误或异常状态而无法进行最终的处理。与4xx状态码相同,除非服务器端响应的是一个head请求,否则需要向客户端返回一个解释出现错误或故障的实体,以及是临时性的还是永久性的。
- 常见2xx-5xx状态码
在以1开头到以5开头的状态码中,以1开头的状态码一般是不会发送给客户端的,常见的2xx-5xx状态码及出现的原因和说明如下表:
状态码 | 原因/说明 |
200(OK) | 客户端发送的请求已成功,请求所希望的响应头或数据体将随此响应返回,出现此状态码是表示正常状态。 |
201(Created) | 请求已经被实现,而且有一个新的资源已经依据请求的需要而建立,且其uri已经随location信息返回。假如需要的资源无法及时建立的话,应当返回 “202 Accepted”。 |
202(Accepted) | 服务器端已经接受了请求,但尚未进行处理,有可能会执行,也有可能会拒绝执行。 |
203(Non-Authoritative Information) | 服务器端已经成功处理了请求,但是返回的实体头部信息不是在原始服务器上有效的确定集合,而是来自本地或者第三方的拷贝。 |
204(No Content) | 服务器端成功处理了请求,但不需要返回任何实体内容,并且希望返回更新之后的元信息。响应可能通过实体头部的形式,返回新的或更新后的元信息。 |
205(Reset Content) | 服务器端成功处理了请求,且没有返回任何内容。 |
206(Partial Content) | 服务器端已经成功处理了客户端的部分get请求。 |
300(Multiple Choices) | 服务器端返回给请求的资源有一系列可供选择的回馈信息,每个都有自己特定的地址和浏览器驱动的商议信息,用户或浏览器能够自行选择一个首选的地址进行重定向。 |
301(Moved Permanently) | 客户端所请求的资源已被永久移动到了新的位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个uri之一。如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址。除非额外指定,否则这个响应也是可缓存的。 |
302(Move Temporarily) | 客户端所请求的资源临时由其它的的uri来进行响应,由于这样的重定向是临时的,在不进行特殊指定的情况下,客户端后续的请求应当继续向原有地址发送。 |
303(See Other) | 客户端当前发送的请求可以在另一个uri得到响应,并且当前客户端需要使用get的方式去访问。 |
304(Not Modified) | 客户端发送了一个带条件的get请求,且该请求已被服务器端所允许,但是文档的内容与客户端上次访问时的内容无变动,则会返回此状态码。 |
305(Use Proxy) | 客户端发送的请求必须经过指定的代理才能进行访问。 |
307(Temporary Redirect) | 客户端所请求的资源临时由其他uri进行响应。 |
400(Bad Request) | 客户端的语义有误或者请求参数有误。 |
401(Unauthorized) | 客户端发送的请求需要需要进行验证,即输入登录名和密*码才能访问。 |
403(Forbidden) | 服务器端已经理解了用户的请求,但是拒绝执行。 |
404(Not Found) | 客户端请求失败,服务器端无法找到用户所需要的资源。 |
405(Method Not Allowed) | 客户端请求方法有误,服务器端需返回一个allow头部信息,列出可以获得该资源的方法列表。 |
406(Not Acceptable) | 客户端所请求的资源特性无法满足请求头中的条件,因而无法响应实体内容。 |
407(Proxy Authentication Required) | 客户端需在代理服务器上进行身份验证才能进行访问。 |
408(Request Timeout) | 请求超时,客户端未在服务器端设定的等待时间内完成一个请求的发送。 |
409(Conflict) | 客户端所请求的资源与该资源当前所处的状态之间有冲突,从而导致无法完成请求,服务器端需要在响应报文中使用足够多的信息帮助用户发现资源冲突的源头。 |
410(Gone) | 客户端所请求的资源在当前服务器已不可用,并且也没有其他的转发地址。 |
500(Internal Server Error) | 服务器内部错误导致无法完成对用户请求的处理,通常出现在服务器端的源代码有误时。 |
501(Not Implemented) | 服务器端不具备处理当前用户请求的某个功能,从而无法处理用户请求。 |
502(Bad Gateway) | 代理服务器或者路由服务器从后端服务器收到了一条伪响应,例如无法连接网关等。 |
503(Service Unavailable) | 服务器端处于维护状态或者过载,无法处理用户请求。 |
504(Gateway Timeout) | 服务器端网关超时,无法处理用户请求。 |
505(HTTP Version Not Supported) | 服务器端不支持,或者拒绝用户请求中所使用的http版本。 |