HTTP 状态码详解:从 1xx 到 5xx 全面解析
HTTP 状态码详解:从 1xx 到 5xx 全面解析
HTTP 状态码是服务器返回给客户端的一种信息,用于描述请求的处理结果。根据状态码的不同,我们可以知道请求是否成功、服务器发生了什么错误,以及如何处理请求。
本文将对所有 HTTP 状态码进行详细解析,并解释它们的含义和应用场景。
1xx Informational
1xx 状态码用于指示请求已经被接收,继续处理。
- 100 Continue:服务器已收到请求的一部分,并要求客户端继续发送剩余的请求。
- 101 Switching Protocols:服务器已同意客户端切换协议。
- 102 Processing:服务器已接收到请求,正在处理中,但尚未完成。
- 103 Early Hints:服务器可以提前发送一些信息,例如响应头,以便客户端可以提前开始准备。
2xx Success
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 Redirection
3xx 状态码用于指示客户端需要进行重定向。
- 300 Multiple Choices:服务器有多个资源可供选择,客户端可以选择其中一个。
- 301 Moved Permanently:请求的资源已永久移动到新的位置。
- 302 Found:请求的资源已暂时移动到新的位置。
- 303 See Other:请求的资源应该使用 GET 方法访问。
- 304 Not Modified:请求的资源没有修改,客户端可以使用缓存中的资源。
- 305 Use Proxy:请求的资源只能通过代理访问。
- 306 Switch Proxy:已废弃。
- 307 Temporary Redirect:请求的资源已暂时移动到新的位置。
- 308 Permanent Redirect:请求的资源已永久移动到新的位置。
4xx Client Error
4xx 状态码用于指示客户端的请求存在错误。
- 400 Bad Request:客户端请求有语法错误。
- 401 Unauthorized:客户端没有授权访问资源。
- 402 Payment Required:需要付费才能访问资源。
- 403 Forbidden:客户端被禁止访问资源。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求的 HTTP 方法不被允许。
- 406 Not Acceptable:客户端无法接受服务器返回的资源类型。
- 407 Proxy Authentication Required:需要通过代理进行授权才能访问资源。
- 408 Request Timeout:客户端请求超时。
- 409 Conflict:请求无法完成,因为资源冲突。
- 410 Gone:请求的资源已不再可用。
- 411 Length Required:需要提供内容长度才能完成请求。
- 412 Precondition Failed:请求没有满足服务器的条件。
- 413 Payload Too Large:请求的资源过大。
- 414 URI Too Long:请求的 URI 过长。
- 415 Unsupported Media Type:请求的资源类型不受支持。
- 416 Range Not Satisfiable:客户端请求的资源范围无法满足。
- 417 Expectation Failed:请求中的期望值无法满足。
- 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:请求头字段过大。
- 444 Connection Closed Without Response:服务器关闭了连接,没有返回响应。
- 451 Unavailable For Legal Reasons:由于法律原因,资源不可用。
- 499 Client Closed Request:客户端关闭了连接。
5xx Server Error
5xx 状态码用于指示服务器端发生错误。
- 500 Internal Server Error:服务器内部发生错误。
- 501 Not Implemented:服务器不支持请求的 HTTP 方法。
- 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:客户端需要进行网络认证才能访问资源。
- 599 Network Connect Timeout Error:服务器连接到上游服务器超时。
总结
HTTP 状态码是理解 HTTP 请求响应过程的关键信息。通过分析状态码,我们可以快速定位请求失败的原因,并采取相应的措施来解决问题。希望本文能够帮助你更好地理解和应用 HTTP 状态码。
原文地址: https://www.cveoy.top/t/topic/nrTL 著作权归作者所有。请勿转载和采集!