HTTP 状态码是服务器在响应客户端请求时返回的标准化代码,用于表示请求的处理状态。它们分为五类,以三位数字的第一位区分。以下是常见的 HTTP 状态码及其含义:
1xx(信息响应)
- 100 Continue:客户端应继续发送请求的剩余部分(已发送部分被服务器接受)。
- 101 Switching Protocols:服务器同意切换协议(如从 HTTP 升级到 WebSocket)。
- 102 Processing:服务器已接收并正在处理请求,但尚未完成(用于长时间操作)。
2xx(成功)
- 200 OK:请求成功,响应中包含请求的数据(如 GET 或 POST)。
- 201 Created:资源已成功创建(常见于 POST 或 PUT 请求后)。
- 202 Accepted:请求已接收,但处理尚未完成(异步操作)。
- 204 No Content:请求成功,但响应中无返回内容(如 DELETE 请求后)。
- 206 Partial Content:服务器返回部分内容(用于分块下载或断点续传)。
3xx(重定向)
- 301 Moved Permanently:资源已永久移动到新 URL(浏览器会缓存此重定向)。
- 302 Found:资源临时移动到新 URL(浏览器不会缓存,可能重复请求原 URL)。
- 304 Not Modified:资源未修改,客户端可使用缓存版本(需配合 If-Modified-Since 等头使用)。
- 307 Temporary Redirect:临时重定向,要求客户端保持原请求方法(如 POST 请求)。
- 308 Permanent Redirect:永久重定向,要求客户端保持原请求方法。
4xx(客户端错误)
- 400 Bad Request:请求格式错误(如参数缺失或语法错误)。
- 401 Unauthorized:需要身份验证(如未提供有效 Token 或 Cookie)。
- 403 Forbidden:服务器拒绝请求(权限不足,即使身份验证通过)。
- 404 Not Found:请求的资源不存在。
- 405 Method Not Allowed:请求方法不被允许(如用 GET 访问只支持 POST 的接口)。
- 408 Request Timeout:服务器等待请求超时(客户端发送请求过慢)。
- 409 Conflict:请求与服务器当前状态冲突(如重复创建资源)。
- 429 Too Many Requests:客户端请求过于频繁(触发限流机制)。
5xx(服务器错误)
- 500 Internal Server Error:服务器内部错误(通用错误,无具体信息)。
- 501 Not Implemented:服务器不支持请求的功能(如未实现的 HTTP 方法)。
- 502 Bad Gateway:网关或代理服务器从上游服务器收到无效响应。
- 503 Service Unavailable:服务器暂时不可用(如维护或过载)。
- 504 Gateway Timeout:网关或代理服务器等待上游服务器响应超时。
- 505 HTTP Version Not Supported:服务器不支持请求的 HTTP 协议版本。
常见应用场景
- 调试接口:遇到 4xx 时检查客户端请求格式或权限;遇到 5xx 时联系服务端排查。
- SEO 优化:使用 301 而非 302 传递页面权重,避免 404 影响用户体验。
- 缓存控制:利用 304 减少重复数据传输,提升性能。
- 限流策略:通过 429 告知客户端调整请求频率。