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 设计,以及提供更好的用户体验。