HTTP 状态码参考

HTTP
HTTP
网络
状态码

HTTP 状态码速查表,按 1xx ~ 5xx 分类整理全部标准状态码(含 WebDAV 扩展与常见非标准码)的含义、典型使用场景与排查建议。

HTTP 状态码参考

状态码是三位的整数,由响应行 HTTP/1.1 200 OK 中的第一个字段给出,用来告诉客户端这次请求处理的结果类别。第一位数字决定了所属的响应类别,后两位只用于区分同类中的具体语义。

类别含义常见例子
1xx信息性响应,请求已被接收,需继续处理100、101、103
2xx成功,请求已被正常处理200、201、204、206
3xx重定向,需要客户端进一步动作301、302、304、307
4xx客户端错误,请求本身有问题400、401、403、404、429
5xx服务端错误,服务端处理失败500、502、503、504

一、1xx 信息性状态码

表示服务端已收到请求,正在处理中,通常不会作为最终响应单独返回,而是配合 Connection: keep-alive 或协议升级使用。

状态码名称说明
100Continue服务端已收到请求头,客户端可以继续发送请求体。常见于携带 Expect: 100-continue 的大文件上传
101Switching Protocols同意协议升级,客户端与服务端此后改用新协议通信,WebSocket 握手即返回 101
102ProcessingWebDAV 中用于表示请求已收到但尚未处理完成,避免客户端超时
103Early Hints在最终响应前提前返回 Link 等头部,让浏览器可以预连接、预加载资源(常配合 103 Early Hints 优化首屏)

二、2xx 成功

状态码名称说明
200OK请求成功并有响应体,是绝大多数 GET / POST 请求的正常返回值
201Created资源创建成功,响应通常带 Location 指向新资源地址(POST 创建、PUT 新建)
202Accepted请求已接受但尚未处理完成,适合异步任务提交后立即返回
203Non-Authoritative Information响应来自缓存或代理,原始响应已被转换,内容并非源站原样返回
204No Content处理成功但没有响应体,常用于 DELETE、PUT,或前端不需要返回数据的提交
205Reset Content处理成功,要求客户端重置(清空)表单内容
206Partial Content返回部分内容,用于范围请求(Range),断点续传与视频拖动播放依赖它
207Multi-StatusWebDAV 中用于批量操作,响应体里为每个子操作分别给出结果
208Already ReportedWebDAV 中用于避免重复枚举已上报的成员
226IM Used服务端对资源执行了实例操控(Delta Encoding)后返回的结果

三、3xx 重定向

重点区分是否允许改变请求方法与是否可缓存,这是排查 301 与 302 混用问题的关键。

状态码名称说明
300Multiple Choices存在多个可选表示,由客户端选择,实际很少使用
301Moved Permanently资源永久迁移,搜索引擎会更新索引,浏览器会强缓存该跳转。接口 / 域名迁移常用
302Found资源临时迁移,语义上应保持原请求方法,但历史实现中常被改为 GET
303See Other明确要求客户端用 GET 访问 Location 指向的资源,常用于 POST 后重定向到结果页
304Not Modified资源未变化,服务端不返回响应体,交由客户端使用本地缓存。需配合 If-None-Match / If-Modified-Since
305Use Proxy要求通过指定代理访问,因安全原因已废弃
307Temporary Redirect临时跳转且禁止改变请求方法,POST 仍以 POST 重新发起
308Permanent Redirect永久跳转且禁止改变请求方法,相当于 301 的保方法版本

四、4xx 客户端错误

状态码名称说明
400Bad Request请求语法错误或参数无法解析,服务端拒绝处理
401Unauthorized未认证或凭证无效,响应应带 WWW-Authenticate 说明认证方式
402Payment Required保留状态码,部分商业 API 用它表示额度 / 付费问题
403Forbidden已认证但无权限访问,不要与 401 混淆:401 是「你是谁」,403 是「你不能」
404Not Found资源不存在,也可能是服务端为隐藏资源是否存在而故意返回
405Method Not Allowed资源存在但不支持该请求方法,响应应带 Allow 列出可用方法
406Not Acceptable无法产出符合 Accept 等协商头要求的响应
407Proxy Authentication Required需要先通过代理的身份认证
408Request Timeout服务端等待请求超时,主动关闭连接
409Conflict请求与资源当前状态冲突,如并发写入同一记录、版本号不匹配
410Gone资源曾存在且已永久删除,比 404 更明确,利于搜索引擎摘除索引
411Length Required缺少 Content-Length,服务端无法处理
412Precondition Failed请求头中的前置条件(If-Match、If-Unmodified-Since)不成立
413Content Too Large请求体超过服务端限制,如 Nginx client_max_body_size 过小
414URI Too Long请求的 URL 过长,常见于把大量参数塞进 GET 查询串
415Unsupported Media Type请求体的媒体类型不受支持,通常是 Content-Type 写错
416Range Not SatisfiableRange 请求的范围无效或超出资源长度
417Expectation Failed无法满足 Expect 请求头中的期望
418I’m a teapot愚人节玩笑状态码,后被用作彩蛋,部分框架用它表示「拒绝为该请求煮咖啡」
421Misdirected Request请求被发送到无法响应该请求的连接上,常见于 HTTP/2 连接复用与 SNI 不一致
422Unprocessable Content语法正确但语义错误,常用于表单校验失败(原称 Unprocessable Entity)
423LockedWebDAV 中资源被锁定
424Failed DependencyWebDAV 中因前一个操作失败导致当前操作未执行
425Too Early服务端不愿处理可能被重放的过早请求,用于防重放攻击(TLS 早期数据)
426Upgrade Required要求客户端升级协议,如强制 HTTPS 或要求 HTTP/2
428Precondition Required要求请求必须携带前置条件,避免并发更新互相覆盖
429Too Many Requests触发限流,响应常带 Retry-After 告知多久后可重试
431Request Header Fields Too Large请求头过大,多因 Cookie 累积过多
451Unavailable For Legal Reasons因法律原因不可用(如被要求下架的内容)

五、5xx 服务端错误

状态码名称说明
500Internal Server Error服务端遇到未预期错误,最常见的兜底错误码,需要查日志定位堆栈
501Not Implemented服务端不支持该请求方法或功能
502Bad Gateway网关 / 反向代理从上游收到了无效响应,通常是后端进程挂了或端口不对
503Service Unavailable服务暂时不可用,如过载、维护、依赖未就绪,响应可带 Retry-After
504Gateway Timeout网关等待上游响应超时,通常是后端处理过慢而非网关本身故障
505HTTP Version Not Supported不支持请求使用的 HTTP 协议版本
506Variant Also Negotiates内容协商配置导致循环,属于配置错误
507Insufficient StorageWebDAV 中存储空间不足
508Loop DetectedWebDAV 中检测到无限循环
510Not Extended需要对请求做进一步扩展才能处理
511Network Authentication Required需要网络认证,常见于公共 WiFi 的强制登录门户

六、排查思路速记

  • 4xx 一般不该重试(除 408、429),先检查参数、鉴权、路径与方法是否匹配。
  • 5xx 可以有限重试(配合退避策略),同时优先看服务端日志与上游依赖状态。
  • 502 与 504 常被混淆:502 是上游「答错了」,504 是上游「答得太慢」。
  • 301 / 308 会被浏览器长期缓存,调试时容易拿到旧跳转,建议用无痕窗口或清缓存验证。
  • 接口设计:创建成功用 201 + Location,无返回体用 204,校验失败用 422,限流用 429。

继续阅读