HTTP 状态码
五大分类
| 范围 |
类别 |
含义 |
1xx |
信息 |
请求已收到,处理中 |
2xx |
成功 |
请求成功 |
3xx |
重定向 |
需要进一步操作 |
4xx |
客户端错误 |
请求有问题 |
5xx |
服务端错误 |
服务器出错 |
常用状态码
2xx 成功
| 码 |
含义 |
场景 |
200 OK |
请求成功 |
GET/POST 正常响应 |
201 Created |
创建成功 |
POST 创建资源后返回 |
204 No Content |
成功但无返回体 |
DELETE 成功后 |
3xx 重定向
| 码 |
含义 |
场景 |
301 Moved Permanently |
永久重定向 |
域名迁移,SEO 传递权重 |
302 Found |
临时重定向 |
登录后跳转、A/B 测试 |
304 Not Modified |
未修改,用缓存 |
浏览器缓存命中 |
4xx 客户端错误
| 码 |
含义 |
场景 |
400 Bad Request |
请求参数错误 |
参数缺失/格式错误 |
401 Unauthorized |
未认证 |
未登录/Token 失效 |
403 Forbidden |
无权限 |
已登录但无访问权 |
404 Not Found |
资源不存在 |
路径错误 |
405 Method Not Allowed |
方法不允许 |
用 GET 请求了只支持 POST 的接口 |
409 Conflict |
冲突 |
用户名已存在、重复提交 |
422 Unprocessable Entity |
参数语义错误 |
格式对但业务校验失败 |
429 Too Many Requests |
请求过多 |
触发限流 |
5xx 服务端错误
| 码 |
含义 |
场景 |
500 Internal Server Error |
服务器内部错误 |
代码抛异常、未捕获错误 |
502 Bad Gateway |
网关错误 |
Nginx 转发失败,上游挂了 |
503 Service Unavailable |
服务不可用 |
服务器过载或维护中 |
504 Gateway Timeout |
网关超时 |
上游响应超时 |
容易混淆的几组
401 vs 403
401 → "你是谁?"(没有身份,需要登录)
403 → "我知道你是谁,但你不能进"(无权限)
301 vs 302
301 → 永久搬家,浏览器/搜索引擎会更新记录
302 → 临时借道,下次还来这个地址
500 vs 502
500 → 应用自己崩了(代码错误)
502 → 反向代理访问不到后端(部署问题)