Http状态码

下面是一个完整的 HTTP 状态码列表,其中包含了所有常见的 HTTP 状态码及其含义。HTTP 状态码按类别分为五个主要类别,每个类别表示不同类型的响应。

1xx:信息响应(Informational)

这些状态码表示请求已被接受,需要继续处理。

  • 100 Continue: 服务器已收到请求头,客户端应继续发送请求体。
  • 101 Switching Protocols: 服务器同意转换协议(如从 HTTP/1.1 到 HTTP/2)。
  • 102 Processing: 服务器正在处理请求,但尚未完成(WebDAV)。
  • 103 Early Hints: 提供一些提示,帮助客户端预加载某些资源。

2xx:成功响应(Successful)

这些状态码表示请求已成功处理。

  • 200 OK: 请求成功,响应通常包含请求的资源。
  • 201 Created: 请求成功,且服务器已创建了新的资源。
  • 202 Accepted: 请求已接受,但尚未处理完成。
  • 203 Non-Authoritative Information: 请求成功,但返回的信息不是来自原始服务器。
  • 204 No Content: 请求成功,但没有返回任何内容。
  • 205 Reset Content: 请求成功,且客户端应重置其视图。
  • 206 Partial Content: 服务器成功处理了部分 GET 请求,通常用于范围请求(例如下载文件的部分内容)。
  • 207 Multi-Status: WebDAV 扩展,表示多状态响应。
  • 208 Already Reported: WebDAV 扩展,表示成员已在先前的多状态响应中报告。
  • 226 IM Used: 表示部分响应已使用“IM”协议(通常用于请求带有范围的响应)。

3xx:重定向(Redirection)

这些状态码表示客户端需要采取额外的操作才能完成请求。

  • 300 Multiple Choices: 请求有多种可能的响应,客户端需要选择其中之一。
  • 301 Moved Permanently: 请求的资源已被永久移动到新位置。
  • 302 Found: 请求的资源临时位于不同的 URL。
  • 303 See Other: 客户端应使用 GET 请求访问新的 URL(通常用于重定向)。
  • 304 Not Modified: 资源未被修改,客户端可以使用缓存的副本。
  • 305 Use Proxy: 请求需要通过代理访问。
  • 306 Switch Proxy: 这个状态码已经废弃,不再使用。
  • 307 Temporary Redirect: 请求的资源临时位于不同的 URL,客户端应继续使用原始方法。
  • 308 Permanent Redirect: 请求的资源已永久重定向到新的 URL,客户端应使用新 URL。

4xx:客户端错误(Client Error)

这些状态码表示请求包含错误,客户端应采取纠正措施。

  • 400 Bad Request: 请求无效,服务器无法理解。
  • 401 Unauthorized: 请求需要身份验证,未提供有效的身份验证信息。
  • 402 Payment Required: 该状态码暂未使用,但在未来可能用于需要支付的请求。
  • 403 Forbidden: 服务器理解请求,但拒绝执行。
  • 404 Not Found: 请求的资源不存在。
  • 405 Method Not Allowed: 请求方法不被允许。
  • 406 Not Acceptable: 服务器无法生成客户端所请求的格式。
  • 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: 请求的范围不符合资源的实际大小。
  • 417 Expectation Failed: 服务器无法满足 Expect 请求头中的要求。
  • 418 I’m a teapot: (愚人节笑话)服务器是一个茶壶,无法继续执行请求。
  • 421 Misdirected Request: 请求被错误地定向到服务器。
  • 422 Unprocessable Entity: WebDAV 扩展,服务器无法处理请求的实体。
  • 423 Locked: WebDAV 扩展,资源被锁定,无法访问。
  • 424 Failed Dependency: WebDAV 扩展,前一个请求失败,导致此请求无法执行。
  • 425 Too Early: 服务器不希望处理此请求,可能是过早。
  • 426 Upgrade Required: 客户端应升级协议才能继续请求。
  • 427 Unassigned: 保留未使用状态码。
  • 428 Precondition Required: 请求必须包含条件。
  • 429 Too Many Requests: 客户端发送的请求过多,服务器限制访问。
  • 431 Request Header Fields Too Large: 请求头部字段过大。
  • 451 Unavailable For Legal Reasons: 由于法律原因,资源不可用。

5xx:服务器错误(Server Error)

这些状态码表示服务器发生了错误,无法完成请求。

  • 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: WebDAV 扩展,服务器无法存储完成请求所需的表示。
  • 508 Loop Detected: WebDAV 扩展,服务器检测到无限循环。
  • 510 Not Extended: 服务器需要扩展才能完成请求。
  • 511 Network Authentication Required: 需要进行网络身份验证。

总结

以上是所有标准的 HTTP 状态码,它们描述了请求和响应过程中不同的状态。理解这些状态码有助于你处理不同类型的错误,优化 API 设计,以及提供更好的用户体验。