跳到主要内容

HTTP 状态码大全:1xx 到 5xx 分类速查与常用码含义

一份按 1xx 到 5xx 五大类整理的 HTTP 状态码速查,讲清 200、301、404、500 等常用码的含义和场景,帮你在调试接口时分清客户端错和服务端错,少绕弯路。

发布于 作者 李雷
#HTTP #状态码 #接口调试 #后端 #SEO

HTTP 状态码大全:1xx 到 5xx 分类速查与常用码含义

每次接口返回一个三位数字,后端和前端都得在脑子里查一遍它到底想说什么。HTTP 状态码不是随机编号,它的第一位就把意图分成了五大类。先记住这五段,再记住每段里那几个高频码,排查问题的速度会快很多。

五大类各自意味着什么

状态码按首位数字分组,每一组的语义是固定的:

  • 1xx 信息(Informational):请求已收到,处理还在继续,客户端可以接着发。日常很少直接看到,典型是 100 Continue。
  • 2xx 成功(Success):请求被正常接收、理解并处理。200 OK 最常见,201 Created 表示新建了资源。
  • 3xx 重定向(Redirection):资源换了位置或需要进一步动作,常见 301、302、304。
  • 4xx 客户端错误(Client Error):问题出在请求方,改请求才有用,例如 400、401、403、404、429。
  • 5xx 服务端错误(Server Error):服务器自己出了岔子,客户端没做错,例如 500、502、503、504。

记住这条主线:4xx 是你的错,5xx 是服务器的错。它决定了你接下来该改代码还是去看服务器日志。

最该背下来的几个常用码

  • 200 OK:请求成功,响应体里是你要的数据。
  • 301 Moved Permanently:永久迁移,搜索引擎会把排名权重转给新地址。
  • 302 Found:临时跳转,原 URL 仍是规范地址。
  • 400 Bad Request:请求本身格式不对,服务器读不懂。
  • 401 Unauthorized:其实是「未认证」,你没带有效凭据,响应应带 WWW-Authenticate 头。
  • 403 Forbidden:已认证但无权访问,重新登录也没用。
  • 404 Not Found:资源不在这,服务器不表态它是否曾经存在。
  • 500 Internal Server Error:服务器内部未处理的异常或 bug。
  • 502 Bad Gateway:代理从后端拿到了坏响应。
  • 503 Service Unavailable:服务器宕机或过载,常带 Retry-After。

这里最容易踩的两个坑:301 和 302 别用反,永久迁移发了 302 会让排名权重留在旧 URL;401 和 403 也别混,前者让用户去登录,后者登录了也白搭。

一个真实例子:404 和 500 的区别

去年我接手一个老接口,前端报「页面打不开」。我先看返回码:有的请求是 404,有的是 500,这两类的排查方向完全相反。

那批 404,是前端把 /api/v2/order 写成了 /api/v1/order,路由表里根本没有 v1 这条,服务器一切正常,只是这个 URL 不存在。修一行前端路径就好,我没必要碰后端。

那批 500,是后端在拼接订单金额时遇到了一个为空的字段,抛了未捕获的异常。服务器日志里有完整堆栈。这跟请求没关系,同样的请求换个有金额的订单就成功了。改的是后端的空值判断。

同样是「打不开」,404 让我去查请求方写的 URL,500 让我去翻服务器堆栈。判错方向,排查时间能差好几倍。

调试时的几个习惯

我自己排查接口问题,养成了几个固定动作:

第一,先看首位数字定方向。4 开头先怀疑请求,5 开头直接去看服务器日志。第二,看响应头。401 看有没有 WWW-Authenticate,429 和 503 看有没有 Retry-After,这些头会直接告诉你下一步。第三,4xx 不要无脑重试,不改请求重试多少次都是同样结果;但 503 等到 Retry-After 指定的时间再试,往往就成了。

需要逐码确认含义和 RFC 时,直接用 HTTP 状态码速查,输入数字或搜「限流」「重定向」这类关键词就能跳到对应的码。如果问题其实出在请求体的 JSON 格式上,可以顺手用 JSON 格式化工具 先把响应体理清楚,再判断到底是 400 还是 422。

小结

状态码这套体系设计得很克制:首位定大类,具体码定细节。把 1xx 到 5xx 五段语义记牢,再把那十来个高频码的含义和适用场景背下来,大部分接口问题在看到返回码的一瞬间就有了排查方向。剩下的细节,查一下就好,不必每次都翻 RFC。


Made by Toolora · Updated 2026-06-13