HTTP 状态码是什么意思
更新 2026-07-06
每次浏览器加载页面或应用调用 API,服务器都会用一个三位数状态码回复。大多数时候你根本看不到它,但一旦出问题 —— 404、500 —— 那个数字就是第一条线索。本指南教你一眼读懂状态码。
读首位数字
诀窍在于 首位数字告诉你类别,这样即使一个你从没见过的码,也能理解它的意图:
- 1xx —— 信息(Informational): 已收到,仍在处理(日常使用中很少见)。
- 2xx —— 成功(Success): 成功了。
- 3xx —— 重定向(Redirection): 资源在别处。
- 4xx —— 客户端错误(Client error): 请求错了(你这边)。
- 5xx —— 服务器错误(Server error): 请求没问题,是服务器失败了。
调试时,4xx 与 5xx 的这道分界最有用:4xx 意味着去改请求;5xx 意味着是服务器的错。
你真正会遇到的码
成功与重定向
- 200 OK —— 标准的“成功了”响应。
- 201 Created —— 创建了一个新资源(在 POST 之后)。
- 301 Moved Permanently —— 此 URL 已永久迁移;更新你的链接。对 SEO 很重要。
- 302 Found —— 临时重定向;继续用原来的 URL。
- 304 Not Modified —— 你缓存的副本仍然有效,所以什么都没重新发送。
客户端错误 (4xx)
- 400 Bad Request —— 请求格式有误。
- 401 Unauthorized —— 你需要认证(登录)。
- 403 Forbidden —— 你已认证但不被允许。
- 404 Not Found —— 资源不存在。
- 429 Too Many Requests —— 你被限流了;慢一点。
服务器错误 (5xx)
- 500 Internal Server Error —— 一个通用的服务器端故障。
- 502 Bad Gateway —— 上游的服务器返回了一个错误的响应。
- 503 Service Unavailable —— 服务器过载,或因维护而下线。
- 504 Gateway Timeout —— 上游服务器没有及时响应。
401 vs. 403:一个常见的混淆
这两个感觉相似,但差在一个词。401 Unauthorized 其实意思是“未认证(unauthenticated)”—— 服务器不知道你是谁,所以去登录。403 Forbidden 意思是服务器知道你是谁,却仍然不允许。一个关乎身份,另一个关乎权限。
完整清单
要看每一个已注册的码及其含义 —— 可搜索、按类分组 —— 见我们的 完整 HTTP 状态码参考。如果你在调试 API 响应,我们关于 JWT 和 URL 编码 的指南讲了你会不断遇到的另外两样东西。
更多 网络与开发者
查看全部 网络与开发者 指南 →本指南提到的工具