常见 HTTP 状态码及含义
1xx 信息性
| 状态码 | 含义 | 使用场景 |
|---|---|---|
| 100 | Continue — 继续,客户端应继续请求 | 客户端先发送请求头,服务器确认后客户端再发送请求体(大文件上传前的预检) |
| 101 | Switching Protocols — 切换协议 | 浏览器发起 WebSocket 握手,服务器同意从 HTTP 升级到 WS 协议 |
2xx 成功
| 状态码 | 含义 | 使用场景 |
|---|---|---|
| 200 | OK — 请求成功 | GET 查询用户信息、POST 登录成功等常规接口返回 |
| 201 | Created — 资源创建成功 | POST 注册新用户、创建订单后返回新资源的地址 |
| 204 | No Content — 请求成功但无返回内容 | DELETE 删除资源成功、PUT 更新成功但不需要返回数据 |
3xx 重定向
| 状态码 | 含义 | 使用场景 |
|---|---|---|
| 301 | Moved Permanently — 永久重定向 | 网站从 http:// 永久迁移到 https://,旧域名跳转新域名 |
| 302 | Found — 临时重定向 | 用户未登录时临时跳转到登录页,登录后再跳回原页面 |
| 304 | Not Modified — 资源未修改,使用缓存 | 浏览器携带 If-None-Match 请求静态资源,服务器确认未变化时返回 |
4xx 客户端错误
| 状态码 | 含义 | 使用场景 |
|---|---|---|
| 400 | Bad Request — 请求语法错误 | 传入的 JSON 格式错误、必填参数缺失、参数类型不匹配 |
| 401 | Unauthorized — 未认证 | 请求携带的 Token 过期或未传 Token,需要重新登录 |
| 403 | Forbidden — 无权限访问 | 普通用户访问管理员接口,或 IP 被封禁 |
| 404 | Not Found — 资源不存在 | 访问已删除的文章、不存在的用户 ID |
| 405 | Method Not Allowed — 请求方法不被允许 | 接口只支持 POST,却用 GET 方式请求 |
| 408 | Request Timeout — 请求超时 | 客户端网络过慢,在规定时间内未完成请求发送 |
| 409 | Conflict — 请求冲突 | 注册时用户名已存在、并发修改同一资源导致版本冲突 |
| 413 | Payload Too Large — 请求体过大 | 上传的图片或文件超过服务器限制的大小 |
| 422 | Unprocessable Entity — 参数验证失败 | 邮箱格式不正确、密码长度不符合规则等业务校验失败 |
| 429 | Too Many Requests — 请求频率超限 | 短时间内频繁调用接口触发限流,如短信验证码接口防刷 |
5xx 服务端错误
| 状态码 | 含义 | 使用场景 |
|---|---|---|
| 500 | Internal Server Error — 服务器内部错误 | 服务端代码抛出未捕获的异常、数据库查询出错 |
| 501 | Not Implemented — 功能未实现 | 服务器不支持客户端请求的某个 HTTP 方法 |
| 502 | Bad Gateway — 网关错误 | Nginx 反向代理的后端服务崩溃或未启动 |
| 503 | Service Unavailable — 服务不可用 | 服务器正在维护、重启,或流量过大导致过载 |
| 504 | Gateway Timeout — 网关超时 | Nginx 等待后端服务响应超时,常见于慢查询或服务假死 |
总结
小提示
- 1xx 状态码较少见,主要用于特定协议升级或预检场景; 2xx 状态码表示请求成功; 3xx 状态码用于重定向; 4xx 状态码表示客户端错误; 5xx 状态码表示服务器错误。
- 记住这些常见状态码并理解其含义,有助于快速定位问题和优化接口设计。