# HTTP状态码Status

维基百科：[HTTP状态码](https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81)

## 1xx消息

这一类型的状态码，代表请求已被接受，需要继续处理。这类响应是临时响应，只包含状态行和某些可选的响应头信息，并以空行结束。由于HTTP/1.0协议中没有定义任何1xx状态码，所以除非在某些试验条件下，服务器禁止向此类客户端发送1xx响应。这些状态码代表的响应都是信息性的，标示客户应该采取的其他行动。

## 2xx成功

这一类型的状态码，代表请求已成功被服务器接收、理解、并接受。

## 3xx重定向

这类状态码代表需要客户端采取进一步的操作才能完成请求。通常，这些状态码用来重定向，后续的请求地址（重定向目标）在本次响应的Location域中指明。

当且仅当后续的请求所使用的方法是GET或者HEAD时，用户[浏览器](https://zh.wikipedia.org/wiki/%E6%B5%8F%E8%A7%88%E5%99%A8)才可以在没有用户介入的情况下自动提交所需要的后续请求。客户端应当自动监测[无限循环](https://zh.wikipedia.org/wiki/%E6%AD%BB%E5%BE%AA%E7%92%B0)重定向（例如：A→B→C→……→A或A→A），因为这会导致服务器和客户端大量不必要的资源消耗。按照HTTP/1.0版规范的建议，浏览器不应自动访问超过5次的重定向。

## 4xx客户端错误

这类的状态码代表了客户端看起来可能发生了错误，妨碍了服务器的处理。除非响应的是一个HEAD请求，否则服务器就应该返回一个解释当前错误状况的实体，以及这是临时的还是永久性的状况。这些状态码适用于任何请求方法。浏览器应当向用户显示任何包含在此类错误响应中的实体内容。[\[30\]](https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81#cite_note-30)

如果错误发生时客户端正在传送数据，那么使用[TCP](https://zh.wikipedia.org/wiki/TCP)的服务器实现应当仔细确保在关闭客户端与服务器之间的连接之前，客户端已经收到了包含错误信息的[数据包](https://zh.wikipedia.org/wiki/%E6%95%B0%E6%8D%AE%E5%8C%85)。如果客户端在收到错误信息后继续向服务器发送数据，服务器的TCP栈将向客户端发送一个重置数据包，以清除该客户端所有还未识别的输入[缓冲](https://zh.wikipedia.org/w/index.php?title=%E7%BC%93%E5%86%B2\&action=edit\&redlink=1)，以免这些数据被服务器上的[应用程序](https://zh.wikipedia.org/wiki/%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F)读取并干扰后者。

## 5xx服务器错误

表示服务器无法完成明显有效的请求。这类状态码代表了服务器在处理请求的过程中有错误或者异常状态发生，也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。除非这是一个HEAD请求，否则服务器应当包含一个解释当前错误状态以及这个状况是临时的还是永久的解释信息实体。浏览器应当向用户展示任何在当前响应中被包含的实体。这些状态码适用于任何响应方法。

## 常见状态码

**1xx**：信息性状态码

100：继续。 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分，正在等待其余部分。

101： 协议切换。请求者已要求服务器切换协议，服务器已确认并准备切换。

102： Processing 该代码表示​​服务器已经收到并正在处理请求，但无响应可用。 这样可以防止客户端超时，并假设请求丢失。

**2xx**：成功状态码

200：OK 请求正常处理

201： Created已创建 请求成功并且服务器创建了新的资源。

202： Accepted已接收。 服务器已接受请求，但尚未处理。

203：Non-Authoritative Information非授权信息。 服务器已成功处理的请求，但返回信息可能来自另一源。

204：No Content 请求处理成功，但没有资源可返回

205： Reset Content重置内容。 服务器成功处理了请求，但没有返回任何内容。与204不同，次响应要求请求者重置文档视图（例如，清除表单内容以输入新的内容）

206：Partial Content对资源的某一部分的请求 服务器已经成功处理了部分GET请求。类似于FlashGet或者迅雷这类的HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。

207：Multi-Status多态 代表之后的消息僵尸一个XML消息，并且可能依照之前子请求数量的不同，包含一系列的响应代码。

**3xx**：重定向状态码

300：Multiple Choices 多选 被请求的资源有一系列可供选择的回馈信息，每个都有自己特定的地址和浏览器驱动的商议信息。用户或浏览器能够自行选择一个首选的地址进行重定向

301：Moved Permanently 永久重定向

302：Found 临时性重定向

303：See Other 查看其它位置 请求者应当对不同的位置使用单独的 GET 请求来检索响应时，服务器返回此代码。对于除 HEAD 之外的所有请求，服务器会自动转到其他位置。

304：Not Modified 缓存中读取

305：Use Proxy 使用代理。被请求的资源必须通过指定的代理才能被访问

**4xx**：客户端错误状态码

400：Bad Request 请求报文中存在语法错误

401：Unauthorized需要有通过Http认证的认证信息

403：Forbidden访问被拒绝 服务器已经理解请求，但是拒绝执行它

404：Not Found无法找到请求资源

405: Method Not Allowed 请求行中指定的请求方法不能被用于请求相应的资源

406: Not Acceptable 无法使用请求的内容特性响应请求的网页。

**5xx**：服务器错误状态码

500：Internal Server Error 服务器端在执行时发生错误

501: Not Implemented 服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法，并且无法支持其对任何资源的请求

502: Bad Gateway 服务器作为网关或代理，从上游服务器收到无效响应。

503：Service Unavailable 服务器处于超负载或者正在进行停机维护

504: Gateway Timeout 服务器作为网关或代理，但是没有及时从上游服务器收到请求。

505: HTTP版本不受支持。
