一. 前言
目前我们所开发涉及到Web服务、API服务等,一般都基于HTTP协议作为传输协议,从开始响应到返回结果,存在状态码的信息,支持我们对本次请求结果的判断。
二. 具体内容
- 按照信息功能类别区分
| 状态码值 | 原因短语 | 中间或结束状态 | 具体含义 |
|---|---|---|---|
| 1XX | Information(信息状态码) | 接受的请求正在处理中 | 服务器收到请求,需要客户端继续执行操作 |
| 2XX | Success(成功状态码) | 请求正常处理完毕 | 操作被服务器成功接受并处理 |
| 3XX | Redirection(信息状态码) | 需要附加的操作完成请求 | 重定向,需要进一步操作完成请求 |
| 4XX | Client Error(客户端错误状态码) | 服务器无法处理请求 | 请求包含错误语法或者无法处理请求 |
| 5XX | Server Error(服务端错误状态码) | 服务器处理请求出错 | 服务器在处理过程中发送错误 |
- 按照状态类型区分
1> 信息状态码
| 状态码值 | 原因短语 | 具体含义 |
|---|---|---|
| 100 | Continue | 服务器收到了初始的请求, 客户端需要继续其请求 |
| 101 | Switching Protocols | 服务器根据客户端的请求切换请求协议, 只能切换到更高版本的协议 |
2> 成功状态码
| 状态码值 | 原因短语 | 具体含义 |
|---|---|---|
| 200 | Ok | 请求成功,实体包含了所有请求的资源 |
| 201 | Created | 成功请求,并创建了新的资源, 比如(PUT) |
| 202 | Accepted | 请求已被接受,但服务器还没有对其执行任何动作 |
| 203 | Non-Authoritative Information | 没有授权信息, 实体首部包含的信息不是来源于源服务器,而是来自资源的副本。服务器根据客户端的请求切换请求协议, 只能切换到更高版本的协议 |
| 204 | No Content | 服务器处理成功,但未返回内容。在页面没有更新的情况下,确保浏览器显示当前的文档 |
| 205 | Reset Content | 主要用于浏览器的代码, 负责告知浏览器请求当前页面中的所有HTML元素 |
| 206 | Partial Content | 服务器成功处理了部分请求 |
3> 重定向状态码
| 状态码值 | 原因短语 | 具体含义 |
|---|---|---|
| 300 | Multiple Choices | 客户端请求一个实际指向多个资源的URL返回这个状态码;比如服务器上由某个HTML版本有中文,英文等版本,返回这个状态码时会带上一个列表,供用户选择 |
| 301 | Moved Permanently | 请求的资源已经被永久的移动到到新的URL,返回的响应Location字段会包含新的URL;浏览器会自动定向到新的URL,今后所有的请求都会使用新的URL替代 |
| 302 | Found | 与301类似,临时移动; 客户端应使用Location首部给出的URL来临时定位资源,将来的请求依使用老得URL |
| 303 | See Other | 告知客户端应该使用另一个URL来获取资源, 主要的目的是允许POST请求的响应将客户端定向到某个资源上 |
| 304 | Not Modified | 客户端所请求的资源未被修改, 服务器返回此状态码, 不任何资源; 客户端通过缓存访问资源, 通过提供一个头信息指出客户端希望只返回指定日期之后修改的资源 |
| 305 | Use Proxy | 请求所需要的资源,必须通过代理访问; 代理的位置由Location首部给出 |
| 306 | Unused | 目前已经被废弃掉的状态码 |
| 307 | Temporary Redirect | 临时重定向, 客户端使用Location首部给出的URL来临时定位资源 |
4> 客户端错误状态码
| 状态码值 | 原因短语 | 具体含义 |
|---|---|---|
| 400 | Bad Request | 用于告知客户端发送了一个错误的请求, 服务器没法理解 |
| 401 | Unauthorized | 请求要求用户进行认证 |
| 402 | Payment Required | 保留状态码,未使用 |
| 403 | Forbidden | 服务器理解客户端的请求, 但是被服务器拒绝了, 服务器如果想说明为什么拒绝请求, 可以在包含实体的部分对原因进行描述 |
| 404 | Not Found | 服务器无法根据客户端的请求找到资源(网页), 开发可以设置个性化的页面展示 |
| 405 | Method Not Allowed | 发起的请求带有服务器不支持的方法 |
| 406 | Not Acceptable | 服务器无法根据客户端的请求内容完成请求(无法匹配到资源) |
| 407 | Proxy Authentication Required | 与401类型,服务器要求客户端使用代理进行授权认证 |
| 408 | Request Timeout | 服务器等待客户端发送的请求时间过长 |
| 409 | Conflict | 服务器完成PUT请求时, 请求的资源上发生了冲突 |
| 410 | Gone | 与404类似,410不同于404的是资源被永久的删除了 |
| 411 | Length Required | 服务器处理客户端不带Content-Length首部时的处理 |
| 412 | Precondition Failed | 客户端发起了请求,且其中一个条件失败时 |
| 413 | Request Entity Too Large | 客户端请求的实体主体部分比服务器能够或者希望处理的长度要长(请求实体过大,服务器可能会拒绝请求,为防止客户端连续请求,服务器可能会关闭连接) |
| 414 | Request URI Too Long | 请求的URI过长 |
| 415 | UnSupported Media Type | 服务器无法理解或者无法支持客户端所发实体内容类型 |
| 416 | Request Range Not Satisfiable | 客户端请求指定的资源呢某个范围,而此范围无效或者无法满足 |
| 417 | Expectation Failed | 服务器无法处理Expectation头部信息 |
5> 服务器错误状态码
| 状态码值 | 原因短语 | 具体含义 |
|---|---|---|
| 500 | Internal Server Error | 服务器内部错误,无法完成请求 |
| 501 | Not Implemented | 客户端的请求超出服务器的处理范围 (例如:使用了服务器不支持的请求方法) |
| 502 | Bad Gateway | 充当代理或者网关的服务器, 从远端服务器收到了无效的响应 |
| 503 | Server Unavailable | 服务器当前无法提供请求服务(超载或者系统维护),但是将来可以;如果服务器知道什么时资源可变为可用的,在响应中包含一个Retry-After首部 |
| 504 | Gateway Timeout | 充当代理或者网关的服务器,未能及时收到远端服务器的响应 |
| 505 | HTTP Version Not Supported | 服务器收到的请求使用了它无法或者不愿意支持的协议版本时, 返回此状态码 |