1.HTTP状态码介绍
HTTP状态码(HTTP Status Code)是用以表示网页服务器HTTP响应状态的3位数字代码。当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求,当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。它由 RFC2616 规范定义的,并得到RFC 2518、RFC 2817、RFC 2295、RFC 2774、RFC 4918等规范扩展
HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用
响应分为五类:信息响应(100–199)、成功响应(200–299)、重定向(300–399)、客户端错误(400–499)、服务器错误 (500–599)
状态码 | 类别 | 分类描述 |
1** | Information,信息性状态码 | 需要请求者继续执行操作。 |
2** | Success,成功状态码 | 操作被成功接收并处理完毕。 |
3** | Redirection,重定向状态码 | 需要进行附加操作以完成请求。 |
4** | Client error,客户端错误状态码 | 请求包含语法错误或服务器无法完成请求。 |
5** | Server error,服务端错误状态码 | 服务器在处理请求的过程中发生了错误。 |
2.HTTP状态码
1** 信息性状态码
状态码 | 描述 | 释义 |
100 | Continue,继续 | 客户端应继续其请求 |
101 | Switching Protocols,切换协议 | 服务器根据客户端的请求切换协议,只能切换到更高级的协议,例如切换到HTTP的新版本协议 一般在交易系统中使用Websocket(s)协议时比较常见 |
102 | Processing (WebDAV) | 此代码表示服务器已收到并正在处理该请求,但没有响应可用,比较少见 |
103 | Early Hints | 此状态代码主要用于与Link 链接头一起使用,以允许用户代理在服务器仍在准备响应时开始预加载资源 |
2** 成功状态码
状态码 | 描述 | 释义 |
200 | OK,请求成功 | 一般用于GET与POST请求 |
201 | Created,已创建 | 成功请求并创建了新的资源 |
202 | Accepted,已接受 | 已经接受请求,但未处理完成 |
203 | Non-Authoritative Information 非授权信息 | 请求成功,但返回的meta信息不在原始的服务器,而是一个副本 |
204 | No Content,无内容 | 服务器成功处理,但未返回内容。在未更新网页的情况下,可确保浏览器继续显示当前文档 |
205 | Reset Content,重置内容 | 服务器处理成功,用户终端(例如:浏览器)应重置文档视图。可通过此返回码清除浏览器的表单域 |
206 | Partial Content,部分内容 | 服务器已经成功处理了部分 GET 请求。类似于 FlashGet 或者迅雷这类的 HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。该请求必须包含 Range 头信息来指示客户端希望得到的内容范围,并且可能包含 If-Range 来作为请求条件,比如一个大文件在节点中缓存上后再Range分片比较常见 |
207 | Multi-Status (WebDAV) | 由WebDAV(RFC 2518)扩展的状态码,代表之后的消息体将是一个XML消息,并且可能依照之前子请求数量的不同,包含一系列独立的响应代码 |
208 | Already Reported (WebDAV) | 在 DAV 里面使用: propstat 响应元素以避免重复枚举多个绑定的内部成员到同一个集合 |
209 | IM Used (HTTP Delta encoding) | 服务器已经完成了对资源的 GET 请求,并且响应是对当前实例应用的一个或多个实例操作结果的表示 |
3** 重定向状态码
状态码 | 描述 | 释义 |
301 | Moved Permanently 永久重定向 | 请求的资源已被永久的重定向到新URI,今后任何新的请求都应使用新的URI代替 |
302 | Found,临时重定向 | 与301类似。但资源只是临时被重定向,即本次试用新的URI访问 |
303 | See Other,查看其它地址 | 由于请求对应的资源存在另一个URI,应使用GET方法定向获取请求的资源 |
304 | Not Modified,未改变 | 所请求的服务器端资源未改变,可直接使用客户端未过期的缓存 |
305 | Use Proxy,使用代理 | 所请求的资源必须通过代理访问 |
307 | Temporary Redirect,临时重定向 | 与302类似。严格遵照浏览器标准,不会从POST变成GET,使用GET请求重定向 |
308 | Permanent Redirect,永久重定向 | 这意味着资源现在永久位于由 Location: HTTP Response 标头指定的另一个 URI。 这与 301 Moved Permanently HTTP 响应代码具有相同的语义,但用户代理不能更改所使用的 HTTP 方法:如果在第一个请求中使用 POST,则必须在第二个请求中使用 POST |
4** 客户端错误状态(常见)
状态码 | 描述 | 释义 |
400 | Unknown Virtual Host | 目前解析的节点暂无此网站配置 |
401 | Unauthorized,未授权 | 说明需要先校验身份 |
403 | Forbidden,禁止 | 服务器理解请求客户端的请求,但是拒绝执行此请求 |
404 | Not Found,未找到 | 服务器无法根据客户端的请求找到资源(网页) |
405 | Method Not Allowed | 请求行中指定的请求方法不能被用于请求相应的资源。该响应必须返回一个Allow 头信息用以表示出当前资源能够接受的请求方法的列表 |
408 | Request Timeout | 请求超时。客户端没有在服务器预备等待的时间内完成一个请求的发送。客户端可以随时再次提交这一请求而无需进行任何更改 |
413 | Payload Too Large | 服务器拒绝处理当前请求,因为该请求提交的实体数据大小超过了服务器愿意或者能够处理的范围。此种情况下,服务器可以关闭连接以免客户端继续发送此请求。如果这个状况是临时的,服务器应当返回一个 Retry-After 的响应头,以告知客户端可以在多少时间以后重新尝试 |
414 | URI Too Long | 请求的URI 长度超过了服务器能够解释的长度,因此服务器拒绝对该请求提供服务。这比较少见,通常的情况包括:本应使用POST方法的表单提交变成了GET方法,导致查询字符串(Query String)过长 |
499 | nginx 引入的非标准状态码 | 出现在客户端主动关闭连接的情况下,一般是某种原因导致网站访问缓慢,用户等不及了,主动停止请求 |
5** 服务端错误状态码
状态码 | 描述 | 释义 |
500 | Internal Server Error,服务器内部错误 | 服务器端在执行请求时发生了错误 |
502 | Bad Gateway,错误网关 | 服务器作为网关或代理,从上游服务器收到无效响应 |
503 | Service Unavailable,服务不可用 | 由于超载或系统停机维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头 |
504 | Gateway Time-out,网关超时 | 服务器作为网关或代理,但是没有及时从上游服务器收到请求 |
持续补充修改完善!!!