HTTP(HyperText Transfer Protocol)状态码用于表示服务器对客户端请求的响应状态。常见的HTTP响应状态码可以分为以下几类:
1xx 信息类状态码(Informational)
- 100 Continue:客户端应继续发送请求,服务器已收到请求的一部分,且未被拒绝。
- 101 Switching Protocols:服务器已根据客户端的请求切换到新的协议。主要用于WebSocket升级。
2xx 成功类状态码(Success)
- 200 OK:请求已成功,服务器返回了请求的网页。
- 201 Created:请求已成功,服务器已创建新资源。
- 202 Accepted:请求已被接受,但处理尚未完成。
- 203 Non-Authoritative Information:服务器已成功处理了请求,但返回的信息可能来自另一来源。
- 204 No Content:请求已成功,但响应不包含实体的主体部分。
- 205 Reset Content:请求已成功,但响应不包含实体的主体部分,且请求的资源已被重置。
- 206 Partial Content:客户端进行了范围请求,服务器成功执行了这部分的GET请求。
3xx 重定向类状态码(Redirection)
- 300 Multiple Choices:请求的资源有多种表示形式,客户端可选择所需的一种。
- 301 Moved Permanently:请求的资源已被永久移动到新URI,应使用GET方法定向到新URI。
- 302 Found:请求的资源临时从不同的URI响应请求,但客户端应继续使用原始URI进行后续请求。
- 303 See Other:请求的资源存在于另一个URI,应使用GET方法定向到新URI。
- 304 Not Modified:如果客户端发送了一个带条件的GET请求,且该资源未被修改,则服务器返回此状态码。
- 305 Use Proxy:请求的资源必须通过指定的代理服务器访问。
- 307 Temporary Redirect:请求的资源临时从不同的URI响应请求,客户端应继续使用原始请求方法。
- 308 Permanent Redirect:请求的资源已被永久移动到新URI,且客户端应继续使用原始请求方法。
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 Request Entity Too Large:请求实体过大,超出了服务器的处理能力。
- 414 Request-URI Too Long:请求的URI过长,服务器无法处理。
- 415 Unsupported Media Type:请求的格式不被请求方法所支持。
- 416 Requested Range Not Satisfiable:客户端请求的范围无效,无法满足。
- 417 Expectation Failed:服务器无法满足Expect请求头的期望。
- 422 Unprocessable Entity(WebDAV):请求格式正确,但由于语义错误,无法处理。
- 423 Locked(WebDAV):资源被锁定。
- 424 Failed Dependency(WebDAV):由于之前的某个请求失败,导致当前请求失败。
- 426 Upgrade Required:客户端应切换到其他协议,如TLS/1.0。
- 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:服务器无法存储完成请求所必须的数据。
- 508 Loop Detected:服务器检测到请求处理中的无限循环。
- 510 Not Extended:服务器不支持请求中使用的扩展。
- 511 Network Authentication Required:客户端需要进行身份验证才能获得网络访问权限。
这些状态码为Web开发者提供了丰富的信息,以处理客户端请求和服务器响应中的各种情况。