HTTP 状态码是一组三位数字,用于表示 HTTP 协议响应的结果。这些状态码由 RFC 7231 定义,并被广泛使用于 Web 开发中。以下是 HTTP 状态码的完整列表及其定义:
1xx(信息响应)
100 Continue:服务器已经接收到了请求头,并且客户端应该继续发送请求主体。
101 Switching Protocol:客户端请求升级协议,服务器同意切换协议。
102 Processing:服务器正在处理请求,但尚未完成。
2xx(成功响应)
200 OK:请求成功,请求所希望的响应头或数据体将随此响应返回。
201 Created:请求成功,并且服务器已经创建了新的资源。
202 Accepted:请求已经被接受,但是尚未被处理完成。
203 Non-Authoritative Information:请求成功,但是返回的信息不是原始服务器上的有效信息。
204 No Content:请求成功,但是响应头或数据体中不包含任何内容。
205 Reset Content:请求成功,且响应头中应重置请求的内容。
206 Partial Content:请求成功,且响应体包含了客户端所请求的部分数据。
207 Multi-Status:请求已经成功处理,但是可能存在多个状态值。
208 Already Reported:请求已经成功处理,但是响应中包含了之前已经报告过的结果。
226 IM Used:服务器已经完成了对请求的处理,响应是对用户代理的一个或多个实例操作结果的表示。
3xx(重定向)
300 Multiple Choices:请求的资源存在多种选择,每种选择都有不同的地址和浏览器能够自行选择。
301 Moved Permanently:请求的资源已经被永久移动到新的位置。
302 Found:请求的资源临时从不同的 URI 响应,但是客户端应该继续使用原始 URI。
303 See Other:请求的资源可以在另一个 URI 中找到,并且客户端应该使用 GET 方法去获取它。
304 Not Modified:客户端发送一个条件请求,但是服务器判断资源没有修改,可以直接使用客户端缓存的版本。
307 Temporary Redirect:请求的资源临时从不同的 URI 响应,但是客户端应该继续使用原始 URI。
308 Permanent Redirect:请求的资源已经被永久移动到新的位置。
4xx(客户端错误)
400 Bad Request:请求中存在语法问题或者服务器无法理解。
401 Unauthorized:请求需要认证,但是没有提供有效的凭据。
402 Payment Required:请求需要付款,但是未支付或者支付失败。
403 Forbidden:请求被服务器拒绝,因为客户端没有访问权限。
404 Not Found:请求的资源不存在。
405 Method Not Allowed:请求使用的方法不被允许。
406 Not Acceptable:请求的资源不满足客户端请求头中的 Accept 标头要求。
407 Proxy Authentication Required:请求需要代理服务器进行身份验证。
408 Request Timeout:客户端发送的请求超时。
409 Conflict:请求存在冲突,服务器无法处理。
410 Gone:请求的资源已经不存在且不会再次存在。
411 Length Required:请求头中缺少 Content-Length 字段。
412 Precondition Failed:服务器判断请求的先决条件失败。
413 Payload Too Large:请求的数据体过大,服务器无法处理。
414 URI Too Long:请求的 URI 过长,服务器无法处理。
415 Unsupported Media Type:请求的数据体格式不被支持。
416 Range Not Satisfiable:服务器无法满足请求中的 Range 标头。
417 Expectation Failed:服务器无法满足 Expect 请求头中的期望值。
418 I’m a teapot:该状态码是一个愚人节玩笑,意味着服务器是一台茶壶。
421 Misdirected Request:请求被发送到错误的服务器,服务器无法处理。
422 Unprocessable Entity:请求的数据格式正确,但是服务器无法处理。
423 Locked:请求被锁定,无法访问。
424 Failed Dependency:请求依赖于另一个请求,但是那个请求失败了。
425 Too Early:请求时间过早,服务器不愿意处理。
426 Upgrade Required:客户端需要切换协议,以便继续处理请求。
428 Precondition Required:请求缺少先决条件。
429 Too Many Requests:请求过于频繁,服务器无法处理。
431 Request Header Fields Too Large:请求头字段过多,服务器无法处理。
451 Unavailable For Legal Reasons:请求的资源因法律原因无法提供服务。
5xx 服务器异常
500 Internal Server Error:服务器遇到了未知的错误。
501 Not Implemented:请求的方法不被服务器支持。
502 Bad Gateway:服务器作为网关或者代理,从上游服务器接收到无效的响应。
503 Service Unavailable:服务器当前无法处理请求,因为它过载或者维护中。
504 Gateway Timeout:服务器作为网关或者代理,未能及时从上游服务器接收到响应。
505 HTTP Version Not Supported:服务器不支持请求中所使用的 HTTP 协议版本。
506 Variant Also Negotiates:服务器存在内部配置问题,导致处理请求时产生了递归循环。
507 Insufficient Storage:服务器无法处理请求,因为存储空间已经耗尽。
508 Loop Detected:服务器在处理请求时发现了无限循环。
510 Not Extended