搜博客 · 网络工具箱

HTTP 状态码大全

1xx 到 5xx 的全部常用状态码,附带中文含义、典型场景和排查方向。共 40 余条,支持按编号或关键字筛选。

1xx · 信息响应

表示请求已收到,服务器要求继续处理。这类状态码一般是中间态,普通用户很少直接看到。

状态码名称含义与典型场景
100Continue服务器已收到请求头,客户端可以继续发送请求体。常见于较大的 POST 请求。
101Switching Protocols服务器同意切换协议,例如从 HTTP 升级到 WebSocket。
102Processing服务器正在处理,但还没有结果。WebDAV 使用。
103Early Hints提前返回部分响应头,让浏览器预加载资源,属于性能优化手段。

2xx · 成功

请求被成功接收、理解并处理。

状态码名称含义与典型场景
200OK请求成功,响应体里是正常内容。最常见的状态码。
201Created资源创建成功。RESTful 接口里 POST 新建数据后返回这个。
202Accepted请求已接受但尚未处理完,适合异步任务提交。
203Non-Authoritative Information返回的元信息不是来自源服务器,而是经过改造的副本。
204No Content处理成功但没有响应体。DELETE、PUT 常用。
205Reset Content要求客户端重置表单输入。
206Partial Content返回部分内容。视频拖动进度条、大文件断点续传都靠它。
207Multi-Status响应体里包含多个独立状态,WebDAV 使用。
208Already Reported同一集合中的成员已被报告过,避免重复。
226IM Used服务器返回的实体是经过实例操纵的结果。

3xx · 重定向

需要客户端采取进一步动作才能完成请求。3xx 是 SEO 里最需要小心的一类。

状态码名称含义与典型场景
300Multiple Choices有多个可选资源,需要客户端选择。
301Moved Permanently资源永久迁移。会传递权重,域名更换、HTTP 跳 HTTPS、绑定主域名都应该用它。
302Found临时跳转。用于登录后跳回、AB 测试等临时场景,长期使用会让搜索引擎保留原地址。
303See Other用 GET 去访问另一个地址,常见于 POST 之后的重定向。
304Not Modified资源没变,用缓存即可。配合 If-Modified-Since、ETag 使用,能省掉重复下载。
305Use Proxy必须通过指定代理访问。已废弃。
307Temporary Redirect临时跳转,但要求保持原请求方法不变(POST 还是 POST)。302 的严谨版。
308Permanent Redirect永久跳转,同样保持请求方法不变。

4xx · 客户端错误

问题出在请求本身——地址写错、权限不足、参数不合法。

状态码名称含义与典型场景
400Bad Request请求语法有误,服务器看不懂。常见于参数缺失、JSON 格式错误。
401Unauthorized未认证。没登录、token 失效或没带 Authorization 头。
402Payment Required需要付费。主流浏览器基本不用,多见于预留定义。
403Forbidden已认证但没权限。和 401 的区别:401 是“你是谁”,403 是“我知道你是谁,但你不能进”。
404Not Found资源不存在。URL 拼错、内容被删除、伪静态规则写错都会出现。
405Method Not Allowed接口不支持该请求方法,例如用 GET 调一个只接受 POST 的接口。
406Not Acceptable服务器无法提供客户端 Accept 头要求的格式。
407Proxy Authentication Required需要先通过代理的身份验证。
408Request Timeout请求超时,客户端在服务器等待时间内没有发完请求。
409Conflict请求与当前资源状态冲突,例如同时修改同一条记录。
410Gone资源曾经存在,现在被永久删除。比 404 更明确,利于搜索引擎尽快移除索引。
411Length Required缺少 Content-Length 头。
412Precondition Failed请求头里的前置条件不成立,例如 If-Match 不匹配。
413Payload Too Large请求体过大,超过服务器限制。上传大文件时常见。
414URI Too LongURL 太长。
415Unsupported Media Type请求体的格式服务器不支持,例如接口要 JSON 却发了表单。
416Range Not Satisfiable请求的字节范围超出文件大小。
417Expectation FailedExpect 头里的期望无法满足。
418I'm a teapot“我是个茶壶”。RFC 2324 愚人节彩蛋,部分框架拿它做特殊标记。
421Misdirected Request请求被发到了无法响应的服务器,常见于 HTTP/2 连接复用。
422Unprocessable Entity格式正确但语义有误,例如必填字段为空。表单校验常返回这个。
423Locked资源被锁定。WebDAV 使用。
424Failed Dependency由于前一个请求失败,本次请求也失败。
425Too Early服务器不愿意处理可能被重放的请求,防重放攻击。
426Upgrade Required要求客户端升级协议,例如必须用 TLS。
428Precondition Required要求请求带上条件头,避免并发覆盖。
429Too Many Requests请求过于频繁,被限流。响应头里通常会带 Retry-After。
431Request Header Fields Too Large请求头过大,常见于 Cookie 塞太多。
451Unavailable For Legal Reasons因法律原因不可用。

5xx · 服务端错误

请求本身没问题,是服务器自己出了状况。

状态码名称含义与典型场景
500Internal Server Error服务器内部错误。看 PHP 错误日志,通常是代码异常、数据库连不上、权限不足。
501Not Implemented服务器不支持该请求方法。
502Bad Gateway网关或代理从上游收到无效响应。Nginx 连不上 PHP-FPM 时就是它,检查 socket 路径和 FPM 是否在跑。
503Service Unavailable服务暂时不可用,通常是过载或维护。带 Retry-After 更友好。
504Gateway Timeout上游超时。和 502 的区别:502 是连上了但响应无效,504 是根本没等到响应。慢查询、导出大任务最容易触发。
505HTTP Version Not Supported服务器不支持请求用的 HTTP 版本。
506Variant Also Negotiates内容协商配置有误。
507Insufficient Storage存储空间不足。WebDAV 使用。
508Loop Detected检测到死循环,常见于重定向规则写错。
510Not Extended需要进一步扩展请求。
511Network Authentication Required需要先做网络认证,例如公共 WiFi 的登录门户。

排查思路:几个高频状态码怎么下手

502 与 504 的区别

这两个都在网关层,常常被混为一谈,但方向完全不同:

快速判断:看 PHP-FPM 进程在不在。不在就是 502,在但日志里跑不动就是 504。

301 与 302 对 SEO 的影响

301 是永久跳转,搜索引擎会把原地址的权重转移到新地址,并逐渐用新地址替换索引;302 是临时跳转,搜索引擎会保留原地址。所以:

404 与 410 怎么选

404 表示“现在找不到”,410 表示“曾经有,永久删了”。410 能让搜索引擎更快移除索引,但一旦误用(内容只是暂时下线)会造成不可逆的权重损失。不确定就用 404。

403 与 401 怎么选

401 表示没通过身份认证,应该返回 WWW-Authenticate 头提示怎么认证;403 表示身份没问题但权限不够。接口设计里混用这两个,会让调试变得很痛苦。

如何自己查看状态码

浏览器按 F12 打开开发者工具,切到 Network 面板,刷新页面,看 Status 那一列。想看单个 URL 的响应头,可以用命令行:

curl -I https://mcstudio.top/
curl -I -L https://mcstudio.top/

第一条只看第一跳,第二条会跟随重定向(-L),适合排查跳转链。

相关工具

IPv4 子网计算器
算网络地址、广播地址、可用主机范围
全部工具
返回工具箱总览