HTTP 状态码速查

从 100 到 511,每个状态码的含义和最常见的出问题原因,排查时不用再翻文档。

显示 62 / 62 个状态码

几个容易混淆的地方

401 和 403 的区别在于身份。401 是「不知道你是谁」,需要先登录或刷新凭证;403 是「知道你是谁,但你不能看这个」,是权限问题,重新登录没有用。

301 和 308 都是永久重定向,302 和 307 都是临时重定向,区别在于后一个数字要求客户端保持原来的请求方法。如果接口地址变了而且是 POST 请求,用 301 或 302 有被改成 GET 而丢掉请求体的风险,应该用 308 或 307。

502、503、504 都出在网关这一层。502 是网关拿到的上游响应无效,通常是后端进程挂了或端口不对;503 是服务主动拒绝,常见于过载、限流和发布重启;504 是等上游超时,要去看后端是不是有慢查询或卡住的外部调用。

422 和 400 都表示请求有问题。400 偏语法和格式,422 偏语义和业务校验,具体用哪个取决于框架约定,看响应体里的错误详情最可靠。