1XX 信息性状态码
这些状态码是HTTP 1.1引入的。 对于这些状态码的价值还存在争论 (我个人从来没见过这些状态码, 也没有理解这些状态码。)
2XX 成功状态码
客户端发起请求时, 这些请求通常都是成功的。服务器有一组用来表示成功的状态码,分别对应于不同类型的请求。
常见:
状态码 | 状态消息 | 含义 | 实例 |
---|---|---|---|
200 | OK | 服务器成功处理了请求(这个是我们见到最多的) | HTTP协议详解-200 |
202 | Accepted(已接受) | 请求已接受, 但服务器尚未处理 | |
203 | Non-Authoritative Information(非权威信息) | 服务器已将事务成功处理,只是实体Header包含的信息不是来自原始服务器,而是来自资源的副本。 |
3XX 重定向状态码
重定向状态码用来告诉浏览器客户端,它们访问的资源已被移动, Web服务器发送一个重定向状态码和一个可选的Location Header, 告诉客户端新的资源地址在哪。
浏览器客户端会自动用Location中提供的地址,重新发送新的Request。 这个过程对用户来说是透明的。
常见:
状态码 | 状态消息 | 含义 | 实例 |
---|---|---|---|
300 | Multiple Choices(多项选择) | 客户端请求了实际指向多个资源的URL。这个代码是和一个选项列表一起返回的,然后用户就可以选择他希望的选项了 | |
301 | Moved Permanently(永久移除) | 请求的URL已移走。Response中应该包含一个Location URL, 说明资源现在所处的位置 | 状态码301 |
4XX客户端错误状态码
有时客户端会发送一些服务器无法处理的东西,比如格式错误的Request, 或者最常见的是, 请求一个不存在的URL。
常见:
状态码 | 状态消息 | 含义 | 实例 |
---|---|---|---|
400 | Bad Request(坏请求) | 告诉客户端,它发送了一个错误的请求。 | 状态码400 |
401 | Unauthorized(未授权) | 需要客户端对自己认证 | HTTP协议之基本认证-401 |
403 | Forbidden(禁止) | 请求被服务器拒绝了 | 状态码403 |
404 | Not Found(未找到) | 未找到资源 | HTTP协议详解-404 |
405 | Method Not Allowed(不允许使用的方法) | 不支持该Request的方法。 | 状态码405 |
5XX服务器错误状态码
有时候客户端发送了一条有效Request, Web服务器自身却出错了。 可能是Web服务器运行出错了, 或者网站都挂了。 5XX就是用来描述服务器错误的
常见:
状态码 | 状态消息 | 含义 | 实例 |
---|---|---|---|
500 | Internal Server Error(内部服务器错误) | 服务器遇到一个错误,使其无法为请求提供服务 | 状态码500 |
501 | Not Implemented(未实现) | 客户端发起的请求超出服务器的能力范围(比如,使用了服务器不支持的请求方法)时,使用此状态码。 | 状态码501 |
502 | Bad Gateway(网关故障) | 代理使用的服务器遇到了上游的无效响应 | 状态码502 |
503 | Service Unavailable(未提供此服务) | 服务器目前无法为请求提供服务,但过一段时间就可以恢复服务 |