HTTP 状态码是服务器对客户端请求的响应状态标识,分为五大类(以第一位数字区分),常用状态码如下:
1. 信息类(1xx):请求已接收,继续处理
- 100 Continue:服务器已接收请求头,客户端可继续发送请求体
- 101 Switching Protocols:服务器同意客户端切换协议(如 HTTP 切换到 WebSocket)
2. 成功类(2xx):请求已成功处理
- 200 OK:请求成功(最常见状态)
- 201 Created:请求成功并创建了新资源(如 POST 新增数据)
- 204 No Content:请求成功,但无返回内容(如 DELETE 操作)
- 206 Partial Content:部分请求成功(如断点续传)
3. 重定向类(3xx):需要进一步操作完成请求
- 301 Moved Permanently:资源永久迁移到新 URL(浏览器会缓存新地址)
- 302 Found:资源临时迁移到新 URL(浏览器不缓存,每次请求需重新跳转)
- 304 Not Modified:资源未修改,可使用本地缓存(常用于静态资源优化)
- 307 Temporary Redirect:临时重定向,保持原请求方法(如 POST 不会转为 GET)
- 308 Permanent Redirect:永久重定向,保持原请求方法
4. 客户端错误(4xx):请求存在错误
- 400 Bad Request:请求格式错误(如参数无效)
- 401 Unauthorized:未认证(需登录或令牌失效)
- 403 Forbidden:服务器拒绝请求(已认证但无权限)
- 404 Not Found:请求的资源不存在
- 405 Method Not Allowed:请求方法不支持(如用 POST 访问只允许 GET 的接口)
- 408 Request Timeout:请求超时
- 409 Conflict:请求与资源当前状态冲突(如修改已被他人更新的数据)
- 413 Payload Too Large:请求体过大
- 415 Unsupported Media Type:不支持的请求数据格式
- 429 Too Many Requests:请求频率超限(限流)
5. 服务器错误(5xx):服务器处理请求时出错
- 500 Internal Server Error:服务器内部错误(最常见服务器错误)
- 502 Bad Gateway:网关/代理服务器收到无效响应
- 503 Service Unavailable:服务器暂时不可用(如维护中)
- 504 Gateway Timeout:网关/代理服务器等待后端响应超时
- 505 HTTP Version Not Supported:不支持请求的 HTTP 版本
这些状态码通过标准化的数字标识,帮助客户端快速判断请求结果,是 HTTP 协议的核心机制之一。实际开发中,4xx 和 5xx 类错误码常用于排查接口问题,2xx 和 3xx 则表示正常流程。