HTTP 响应状态码用于表示服务器对客户端请求的处理结果。状态码分为五个类别,分别为:
1. 1xx(信息性状态码)
这些状态码表示请求已被接受,正在继续处理。
- 100 Continue:服务器已接收到请求头,客户端可以继续发送请求体。
- 101 Switching Protocols:服务器同意切换协议。
- 102 Processing:服务器已收到并正在处理请求,但尚未完成。
2. 2xx(成功状态码)
这些状态码表示请求已成功被服务器处理。
- 200 OK:请求成功,返回的响应内容视请求方法而定。
- 201 Created:请求成功并导致了一个资源的创建。
- 202 Accepted:请求已接受,但处理尚未完成。
- 203 Non-Authoritative Information:请求成功,但返回的信息可能来自缓存或其他非原始服务器。
- 204 No Content:请求成功,但没有返回内容。
- 205 Reset Content:请求成功,要求客户端重置视图。
- 206 Partial Content:服务器已成功处理部分请求。
3. 3xx(重定向状态码)
这些状态码表示客户端需要进一步操作才能完成请求。
- 300 Multiple Choices:请求有多种可能的响应。
- 301 Moved Permanently:请求的资源已永久移动到新位置。
- 302 Found:请求的资源临时移动到新位置。
- 303 See Other:服务器建议客户端使用不同的URL来获取资源。
- 304 Not Modified:资源未修改,客户端可以使用缓存的版本。
- 305 Use Proxy:请求的资源需要通过代理访问。
- 307 Temporary Redirect:请求的资源临时移动。
- 308 Permanent Redirect:请求的资源永久移动,客户端应使用新URL。
4. 4xx(客户端错误状态码)
这些状态码表示请求有错误,客户端可能需要修改请求。
- 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:请求的URL过长。
- 415 Unsupported Media Type:请求的媒体类型不支持。
- 416 Range Not Satisfiable:请求的范围无法满足。
- 417 Expectation Failed:服务器无法满足请求头中的Expect字段。
- 418 I'm a teapot:一个愚弄性错误码,源自HTTP 418标准。通常是玩笑。
- 421 Misdirected Request:请求被错误地发送到不应接收的服务器。
- 422 Unprocessable Entity:请求格式正确,但服务器无法处理。
- 423 Locked:资源被锁定,无法访问。
- 424 Failed Dependency:依赖的操作失败,导致请求失败。
- 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:由于法律原因,资源不可用。
5. 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:请求需要进一步扩展才能被服务器处理。
- 511 Network Authentication Required:需要进行网络身份验证。
HTTP状态码及其常见错误和解决方法的总结表格:
状态码 | 描述 | 常见错误 | 解决方法 |
---|---|---|---|
1xx | 信息性状态码 | 这些状态码通常不需要客户端处理。 | |
100 | Continue | 请求继续发送 | 客户端继续发送请求体。 |
101 | Switching Protocols | 协议切换 | 无需特别处理,协议已切换。 |
2xx | 成功状态码 | 请求已成功,无需解决问题。 | |
200 | OK | 请求成功 | 请求已成功,无需处理。 |
201 | Created | 资源已创建 | 检查是否需要返回创建的资源。 |
204 | No Content | 无内容 | 无需返回内容,通常用于删除操作。 |
3xx | 重定向状态码 | 需要客户端处理重定向。 | |
301 | Moved Permanently | 资源永久移动 | 更新URL,遵循新的Location头部。 |
302 | Found | 临时重定向 | 跟随Location头部,执行临时重定向。 |
304 | Not Modified | 资源未修改 | 客户端使用缓存的版本,无需重新下载。 |
4xx | 客户端错误状态码 | 请求错误,需修正客户端问题。 | |
400 | Bad Request | 请求格式错误 | 检查请求格式,URL和请求体是否符合规范。 |
401 | Unauthorized | 缺少身份认证 | 检查Authorization头部,进行认证。 |
403 | Forbidden | 无权限访问 | 检查权限设置,确保有访问资源的权限。 |
404 | Not Found | 资源不存在 | 确认URL正确,确保资源存在。 |
405 | Method Not Allowed | 请求方法不支持 | 检查HTTP方法,确保服务器支持该方法。 |
408 | Request Timeout | 请求超时 | 增加请求超时时间,优化服务器响应时间。 |
429 | Too Many Requests | 请求过多 | 降低请求频率,联系服务器管理员增加限制。 |
413 | Payload Too Large | 请求体过大 | 减小请求体大小,或者增加服务器允许的请求体大小。 |
414 | URI Too Long | URL过长 | 缩短URL,使用POST而不是GET传递数据。 |
415 | Unsupported Media Type | 媒体类型不支持 | 检查Content-Type头部,确保服务器支持该类型。 |
5xx | 服务器错误状态码 | 服务器问题,通常需要管理员修复。 | |
500 | Internal Server Error | 服务器内部错误 | 检查服务器日志,修复应用或配置问题。 |
502 | Bad Gateway | 无效的响应从上游服务器 | 检查上游服务器的健康状态,确认其是否正常工作。 |
503 | Service Unavailable | 服务不可用 | 稍后重试,检查服务器负载或是否维护中。 |
504 | Gateway Timeout | 网关超时 | 检查网络连接,确认上游服务器是否正常响应。 |
505 | HTTP Version Not Supported | HTTP协议版本不支持 | 升级或降级客户端的HTTP版本,与服务器兼容。 |
507 | Insufficient Storage | 存储空间不足 | 检查服务器存储空间,释放或增加存储容量。 |