后端常用的 10 个 HTTP 状态码

Frieren 发布于 2026-02-02 47 次阅读


原则一句话:
状态码是“机器级语义”,不是给人看的文案。

一张工程师必背速查表

分类状态码工程含义
成功200 / 201 / 204请求处理完成
重定向301 / 302资源位置变化
客户端错400 / 401 / 403 / 404请求不合理
服务端错500我代码炸了

一、200 OK —— 一切正常

使用场景

  • 查询成功
  • 修改成功(同步接口)

1.1 201 Created —— 创建成功

使用场景

  • 创建资源(POST /users)
  • 新订单创建成功

为什么推荐用

  • 比 200 更语义化
  • 对 RESTful 很友好

1.2 204 No Content —— 成功但不返回内容

使用场景

  • 删除成功
  • 只更新状态,不需要返回体

工程好处

  • 减少无意义 payload
  • 明确告诉客户端:别等数据了

二、3xx

2.1 301 Moved Permanently —— 永久重定向

使用场景

  • HTTP → HTTPS
  • 域名迁移

📌 注意

  • 浏览器和搜索引擎会缓存这个结果

2.2 302 Found —— 临时重定向

使用场景

  • 登录跳转
  • 短期活动页

工程提醒

  • 不要滥用,否则缓存行为混乱

三、4xx

3.1 400 Bad Request —— 请求参数有问题

使用场景

  • 参数缺失
  • 参数格式错误
  • JSON 解析失败

工程经验

  • 最常见 4xx
  • 后端校验失败,首选它

3.2 401 Unauthorized —— 没有“身份”

使用场景

  • 没登录
  • Token 失效

常见误区

  • ❌ 把没权限也用 401
  • ✅ 401 = 你是谁我不知道

3.3 403 Forbidden —— 有身份,但没权

使用场景

  • 普通用户访问管理员接口
  • 被风控拦截

口诀

401:你是谁?
403:我知道你是谁,但你不配

3.4 404 Not Found —— 资源不存在

使用场景

  • URL 错误
  • 数据不存在(是否暴露需谨慎)

工程提示

  • 安全敏感接口有时故意返回 404

四、 500 Internal Server Error —— 服务端真出事了

使用场景

  • 未捕获异常
  • 代码 Bug

工程铁律

  • 能用 4xx 的,绝不要用 500
  • 500 一多,运维就会来找你
此作者没有提供个人介绍。
最后更新于 2026-02-02