HTTP 状态码大全
1xx 信息、2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务端错误,含中文含义与真实触发场景,点击状态码可复制。
共 63 个标准状态码1xx 信息 4 个2xx 成功 10 个3xx 重定向 9 个4xx 客户端错误 29 个5xx 服务端错误 11 个当前显示 63 条
共 63 条
| 状态码 | Reason Phrase | 中文名称 | 含义与常见触发场景 |
|---|---|---|---|
| 100 | Continue | 继续 | 服务器已收到请求头,允许客户端继续发送请求体。常见于大文件上传前的握手(客户端带 Expect: 100-continue),多数情况下客户端不必等待就直接发送正文。 |
| 101 | Switching Protocols | 切换协议 | 服务器同意按请求头的 Upgrade 切换协议,随后底层连接交给新协议。典型场景是 HTTP 升级为 WebSocket(Upgrade: websocket),以及 h2c 明文升级。 |
| 102 | Processing | 处理中 | WebDAV 扩展:请求已接收但尚未完成,为避免超时先给出中间响应。仅在多资源操作里出现,现代服务较少使用(RFC 9110 已弃用)。 |
| 103 | Early Hints | 提前提示 | 在最终响应之前先返回 Link 头,让浏览器提前预加载 CSS/JS/字体,显著缩短首屏时间。需服务端显式开启,常见于 CDN 与新版框架的 preload 优化。 |
| 200 | OK | 请求成功 | 最常见的成功响应,请求已按方法语义正确处理,正文即结果。GET 返回资源内容,POST 返回处理结果。 |
| 201 | Created | 已创建 | 请求成功并新建了资源,响应通常带 Location 头指向新资源地址,常见于 POST 注册、创建订单等接口。 |
| 202 | Accepted | 已受理 | 请求已接收但处理尚未完成,属于异步语义。常见于消息队列、批量导出、后台任务;最终结果需另行轮询或回调通知。 |
| 203 | Non-Authoritative Information | 非权威信息 | 响应来自缓存或代理,元数据可能与源服务器不一致。使用较少,代理改写响应体时才会返回。 |
| 204 | No Content | 无内容 | 请求成功但没有响应体,浏览器保留当前页面。常用于 OPTIONS 预检、仅回执的 PUT/PATCH、无跳转的自动保存。 |
| 205 | Reset Content | 重置内容 | 要求客户端重置文档视图(清空表单输入)。典型用于提交成功后让表单回到初始状态,比返回页面再跳转更省流量。 |
| 206 | Partial Content | 部分内容 | Range 请求成功,只返回指定字节区间,响应带 Content-Range。视频拖动、断点续传、多线程下载都依赖它。 |
| 207 | Multi-Status | 多状态 | WebDAV 扩展:一个响应里用 XML 表达多个子操作各自的状态码,常见于 PROPFIND、PROPPATCH 等批量文件操作。 |
| 208 | Already Reported | 已报告 | WebDAV 绑定集合扩展:同一资源的重复绑定不再报错,而是告知「此成员已经报告过」,用于避免死循环。 |
| 226 | IM Used | 已使用实例操作 | 服务器完成了请求中指定的 Delta-Encoding 实例操作(如增量更新),响应体是应用差量后的结果。极少见到。 |
| 300 | Multiple Choices | 多种选择 | 同一 URI 对应多个表示,服务器给出候选列表由用户/代理挑选。实际很少返回,多数场景改用 301/302 或直接内容协商。 |
| 301 | Moved Permanently | 永久移动 | 资源永久换新地址,Location 给出新 URL,浏览器和爬虫会缓存并更新链接。站点改域名、http 强制跳 https 用它;注意缓存难以回退,误用会导致旧链接长期跳错。 |
| 302 | Found | 临时重定向(找到) | 临时换地址,客户端后续仍应向原 URL 请求。历史上部分浏览器会把 POST 改成 GET,若需严格保持方法与 body 请用 307。 |
| 303 | See Other | 参见其他地址 | 用 GET 去另一个 URL 取结果,专门用于 POST/PUT 之后跳到确认页(PRG 模式:Post/Redirect/Get),避免刷新重复提交。 |
| 304 | Not Modified | 未修改 | 协商缓存命中:配合 If-None-Match/If-Modified-Since 返回,无响应体,浏览器直接用本地缓存副本。静态资源秒开的功臣。 |
| 305 | Use Proxy | 使用代理 | 要求通过指定代理访问资源。因安全风险与实现混乱,RFC 7230 已标记为弃用,现代客户端不再支持。 |
| 306 | Switch Proxy | 切换代理 | 旧规范预留的「换用另一个代理」状态码,从未被实际部署,IANA 标注为未使用(保留,勿再用于新协议)。 |
| 307 | Temporary Redirect | 临时重定向 | 与 302 同义但严禁改方法:POST 重定向后仍是 POST,请求体会重发。用于临时维护跳转、灰度分流。 |
| 308 | Permanent Redirect | 永久重定向 | 与 301 同为永久,但要求方法不变。适合接口版本迁移(POST /v1 永久指向 /v2)而又不想丢失请求方法的场景。 |
| 400 | Bad Request | 请求语法错误 | 服务器无法理解请求:JSON 格式错、必填参数缺失、类型不匹配、URL 编码非法。属于调用方问题,重试同样参数无意义。 |
| 401 | Unauthorized | 未认证 | 身份验证失败或缺少凭据:Token 过期/无效、未登录、Authorization 头格式不对(应为 Bearer xxx)。响应应带 WWW-Authenticate 说明方式。注意它表达的是「你是谁没确认」而非「你没权限」,后者是 403;前端通常在此码触发重新登录。 |
| 402 | Payment Required | 需要支付 | 为「在线付费」预留的状态码,标准里保留但无统一实现约定。部分 API 服务商自定义用它表示余额不足、需升级套餐。 |
| 403 | Forbidden | 禁止访问 | 身份已确认但权限不足:角色无权、IP 被黑名单、缺少 CSRF/Cookie、跨站防盗链、WAF 规则命中。与 401 的区别是重新登录也没用,需要授权或改策略;服务端不应在响应里泄露具体权限判定细节。 |
| 404 | Not Found | 资源不存在 | 服务器上找不到该 URI 对应的资源:路径拼写错、资源被删除、动态路由未匹配、静态站点部署时漏了产物文件,也可能是权限策略故意以 404 隐藏存在性。排查顺序:确认 URL 大小写与末尾斜杠、看路由表、确认构建产物是否包含该页(Nuxt 预渲染需在 routes 中)。与 410 的区别是 404 不表示「曾经有现在没有」。 |
| 405 | Method Not Allowed | 方法不允许 | URI 存在但不支持该 HTTP 方法,例如对只读接口发 PUT。响应带 Allow 头列出可用方法;框架路由只注册了 GET 而前端调 POST 时最常见。 |
| 406 | Not Acceptable | 无法接受 | 服务端无法产出满足 Accept 头(如 application/json)的表示。多为内容协商配置错误,实践中许多 API 直接忽略此码改用 200 或 415。 |
| 407 | Proxy Authentication Required | 需要代理认证 | 客户端需先通过代理服务器认证(Proxy-Authenticate 头),常见于公司内网强制走带账号的 HTTP 代理。 |
| 408 | Request Timeout | 请求超时 | 客户端在服务端等待窗口内没发完请求体。弱网上传大文件、连接池里复用了已被 NAT 掐断的空闲连接时会看到;一般是可安全重试的幂等错误。 |
| 409 | Conflict | 冲突 | 请求与资源当前状态冲突:乐观锁版本号不匹配、重复注册同名用户、并发编辑互相覆盖。需要客户端拿到最新状态后重试。 |
| 410 | Gone | 资源已永久删除 | 资源曾存在且已被有意删除,且无转发地址。相比 404 明确告诉爬虫「可以彻底摘掉链接」,适合内容下线策略;缓存会较快失效。 |
| 411 | Length Required | 需要 Content-Length | 服务端拒绝没有 Content-Length 头的请求(chunked 传输不被接受)。多见于网关或老式服务,改用固定长度正文即可。 |
| 412 | Precondition Failed | 前置条件失败 | If-Match/If-Unmodified-Since 等条件头校验不通过,说明资源已被他人改动,常用于乐观并发控制,客户端需重新读取后再提交。 |
| 413 | Content Too Large | 请求体过大 | 请求体超过服务端限制:上传超配额、图片过大、批量 JSON 太长。响应可能带 Retry-After。调整方式是压缩、分片上传或提高网关 max body size。 |
| 414 | URI Too Long | URI 过长 | 请求行超过服务器上限(常见于把大量筛选条件塞进 GET 查询串,或误把正文拼进 URL)。改 POST 传参或减少参数即可。 |
| 415 | Unsupported Media Type | 媒体类型不支持 | Content-Type 与接口约定不符:该收 JSON 却发了 form-urlencoded、上传非白名单格式文件。修正请求头或改文件类型。 |
| 416 | Range Not Satisfiable | 范围不满足 | 请求的 Range 超出资源实际长度(如文件续传位置比文件还大)。响应带 Content-Range: */实际长度,客户端据此重下。 |
| 417 | Expectation Failed | 期望未满足 | 客户端发了 Expect: 100-continue,但服务器不愿或不能接受该期望,直接拒绝整个请求。 |
| 418 | I'm a teapot | 我是茶壶 | 1998 年愚人节彩蛋(HTCPCUP 超文本咖啡壶控制协议):拒绝用茶壶煮咖啡。曾被 Google 等真实用于限流提示,保留它也是程序员的浪漫。 |
| 421 | Misdirected Request | 请求定向错误 | 连接被送到了不具备处理能力的服务器,典型是 HTTP/2 连接复用命中了没有对应 SNI 证书的域名。客户端可换连接重试。 |
| 422 | Unprocessable Content | 内容无法处理 | 请求语法正确但语义无法处理:字段校验失败、业务规则不通过。API 常在此码返回逐字段错误列表,与 400 的区别是「格式没问题、内容不合规矩」。 |
| 423 | Locked | 已锁定 | WebDAV:目标资源被(他人或自己)锁定,写操作被拒绝。文件协作、在线编辑场景用于避免同时修改。 |
| 424 | Failed Dependency | 依赖失败 | WebDAV:因前置请求(同一批 PROPPATCH 中的其他操作)失败,本次请求未执行。 |
| 425 | Too Early | 过早 | 服务器不愿冒重放风险处理过早到达的请求,与 TLS 1.3 的 0-RTT/Early Data 相关。客户端在新建连接上重试即可。 |
| 426 | Upgrade Required | 需要升级协议 | 拒绝在当前协议版本提供服务,要求客户端 Upgrade(如提示只支持 HTTP/2、或要求 TLS)。响应带 Upgrade 头。 |
| 428 | Precondition Required | 需要前置条件 | 要求请求必须带 If-Match 之类条件头,防止「未读先改」覆盖他人修改。用于强制乐观并发的写接口。 |
| 429 | Too Many Requests | 请求过多 | 触发限流:单位时间请求数超限。响应通常带 Retry-After 告诉客户端多久后再试;前端应做退避重试而不是立刻循环打。 |
| 431 | Request Header Fields Too Large | 请求头过大 | 单个或整体请求头超出服务器限制。常见于 Cookie 堆积过多、把大对象塞进自定义头。清理 Cookie 或改放正文。 |
| 451 | Unavailable For Legal Reasons | 因法律原因不可用 | 因版权、审查等法律要求而屏蔽该资源,响应可用 Link 头指向说明文书。用于向用户透明地说明「不是技术问题,是法律原因」。 |
| 500 | Internal Server Error | 服务器内部错误 | 服务端未预期的异常兜底码:代码抛错未捕获、空指针、数据库连接失败、依赖服务返回异常、配置或环境变量缺失。它对客户端没有可操作信息,责任在服务端;排查要看服务端日志与 traceId,生产环境还应避免把堆栈直接回显到响应体造成信息泄露。 |
| 501 | Not Implemented | 未实现 | 服务器不支持请求所要求的功能方法(例如不支持 PUT),与 405 的区别是 501 指方法本身没实现而非该资源不允许。 |
| 502 | Bad Gateway | 网关错误 | 反向代理/网关从上游拿到了无效响应:后端进程崩溃或未启动、端口不通、上游返回了非 HTTP 内容、容器刚重启还没就绪、连接被上游提前关闭。定位思路:先看后端健康检查与启动日志,再看代理 error log(nginx 会写明 connect() failed 或 upstream prematurely closed)。 |
| 503 | Service Unavailable | 服务不可用 | 服务器暂时无法处理:过载、正在发版维护、依赖熔断、线程池耗尽、健康检查摘流。语义是「临时」,正确做法是带 Retry-After 让客户端稍后重试,并配合维护页与自动扩容。 |
| 504 | Gateway Timeout | 网关超时 | 代理等待上游响应超时:慢 SQL、第三方接口耗时、大报表导出超过 proxy_read_timeout。与 502 的区别是上游确实活着但回得太慢;需要优化后端耗时或调大代理超时。 |
| 505 | HTTP Version Not Supported | HTTP 版本不支持 | 服务器不支持请求使用的 HTTP 版本(如仍在用 HTTP/1.0 访问只支持 1.1/2 的服务)。升级客户端协议版本。 |
| 506 | Variant Also Negotiates | 变体自身又在协商 | 透明内容协商配置错误:某个变体资源又把协商指向自己,形成循环。属于服务器端 mod_negotiation 配置 bug。 |
| 507 | Insufficient Storage | 存储空间不足 | WebDAV:服务器没足够空间完成本次写入(MKCOL/PUT)。也可能是配额用尽,需要清理磁盘或扩配额。 |
| 508 | Loop Detected | 检测到死循环 | WebDAV 绑定集合出现循环引用(A 包含 B,B 又包含 A),服务器为避免无限递归终止处理。 |
| 510 | Not Extended | 未扩展 | 客户端使用了策略要求的扩展但请求里没带上(RFC 2774 Policy Framework),需要补充扩展后重发。几乎不会在真实业务遇到。 |
| 511 | Network Authentication Required | 需要网络认证 | 门户捕获网络(咖啡馆/机场/酒店 WiFi)要求先登录认证,客户端会强制弹出认证页。属于网络层拦截,不是业务服务器返回。 |
使用说明
- 表内只收录 IANA 注册的标准码;
444(nginx 直接断连)、499(客户端提前断开)、520-599(Cloudflare 等)属于实现私有码,不在标准内。 401与403的区别:前者「没确认你是谁」,后者「知道你是谁但不让进」;前者可通过重新登录解决,后者不行。301会被浏览器长期缓存,改站点跳转规则时要谨慎,必要时先用302/307观察效果。502与504都出自反向代理:前者是上游回了坏响应,后者是上游根本没来得及回。
使用反馈
为保障内容质量,使用反馈需站长审核通过后才会展示;提交后没立刻看到属正常,请勿重复提交。
还没有评论,来抢沙发~