HTTP 状态码

📊 HTTP 状态码完整速查表(RFC 9110 标准版)

🔍 图例 核心标准|🌐 WebDAV/协议扩展|⚠️ 已废弃/保留|🔬 实验性|📉 极少使用/历史遗留

1xx 信息性(Informational)

状态码英文名称中文译名标准来源核心说明与典型场景
100Continue继续RFC 9110客户端应继续发送请求体(配合 Expect: 100-continue
101Switching Protocols切换协议RFC 9110服务器同意升级协议(如 Upgrade: websocket
102Processing处理中RFC 4918WebDAV 扩展,防代理/客户端超时,需异步返回进度
103Early Hints早期提示RFC 8297在完整响应前预加载关键资源(如 <link rel=preload>

2xx 成功(Success)

状态码英文名称中文译名标准来源核心说明与典型场景
200OK成功RFC 9110请求成功,响应体含结果(GET/POST/PUT 默认)
201Created已创建RFC 9110新资源已创建,必须返回 Location 头指向新资源
202Accepted已接受RFC 9110请求已入队异步处理,不保证最终成功(如后台任务)
203Non-Authoritative Information非授权信息RFC 9110响应来自中间节点(代理/缓存),非源服务器权威数据
204No Content无内容RFC 9110成功但无响应体(常用于 DELETE/PUT
205Reset Content重置内容RFC 9110成功,要求客户端重置表单/视图(如清空输入框)
206Partial Content部分内容RFC 9110范围请求成功(断点续传,需 Content-Range
207Multi-Status多状态RFC 4918WebDAV,XML 响应包含多个子资源独立状态
208Already Reported已报告RFC 5842WebDAV,集合成员已在本响应中报告,避免重复列举
226IM Used实例操纵已使用RFC 3229Delta 编码/差异更新成功

3xx 重定向(Redirection)

状态码英文名称中文译名标准来源核心说明与典型场景
300Multiple Choices多种选择RFC 9110资源有多种表示(语言/格式),需客户端自行选择
301Moved Permanently永久移动RFC 9110资源永久迁移,SEO 权重转移,缓存长期有效
302Found临时重定向RFC 9110⚠️ 历史兼容码。浏览器可能将 POST 转为 GET,语义不严格
303See Other查看其他位置RFC 9110明确指示用 GET 请求新 URI,防表单重复提交
304Not Modified未修改RFC 9110缓存有效,不返回主体(配合 If-None-Match 等)
305Use Proxy使用代理RFC 9110⚠️ 已废弃,存在安全风险,现代客户端已忽略
306Unused未使用RFC 9110⚠️ IANA 保留码,无定义,不应使用
307Temporary Redirect临时重定向RFC 9110严格保持原请求方法(POST→POST),替代 302 的现代标准
308Permanent Redirect永久重定向RFC 9110严格保持原请求方法,替代 301 的现代标准(原 RFC 7538)

4xx 客户端错误(Client Error)

状态码英文名称中文译名标准来源核心说明与典型场景
400Bad Request错误请求RFC 9110语法错误、参数无效、JSON/XML 解析失败
401Unauthorized未认证RFC 9110缺少或无效凭证,响应必须包含 WWW-Authenticate
402Payment Required需付费RFC 9110⚠️ IANA 保留,预留给数字支付系统,极少使用
403Forbidden禁止访问RFC 9110服务器理解请求但拒绝执行(权限不足、IP 封禁等)
404Not Found未找到RFC 9110资源不存在或 URI 路径错误
405Method Not Allowed方法不允许RFC 9110请求方法不被支持,响应必须包含 Allow
406Not Acceptable不可接受RFC 9110无法提供 Accept 要求的媒体类型/语言/编码
407Proxy Authentication Required需代理认证RFC 9110需通过 HTTP 代理身份验证(类似 401,但针对代理)
408Request Timeout请求超时RFC 9110客户端未在服务器等待时间内完成请求
409Conflict冲突RFC 9110请求与当前资源状态冲突(如并发修改、版本不一致)
410Gone已失效RFC 9110资源永久删除,客户端应移除相关缓存与链接
411Length Required需内容长度RFC 9110缺少 Content-Length 头(严格模式服务器要求)
412Precondition Failed前置条件失败RFC 9110If-Match/If-Unmodified-Since 等条件不满足
413Payload Too Large请求体过大RFC 9110原名 Request Entity Too Large,RFC 7231 更新
414URI Too LongURI 过长RFC 9110请求 URI 超过服务器限制(通常 >2KB~8KB)
415Unsupported Media Type不支持的媒体类型RFC 9110Content-Type 不被服务器接受
416Range Not Satisfiable范围无法满足RFC 9110Range 头指定范围无效或超出资源大小
417Expectation Failed期望失败RFC 9110Expect 头要求(如 100-continue)无法满足
418I’m a teapot我是个茶壶RFC 2324🔬 实验性状态码,IANA 正式注册,常用于防爬虫或 API 彩蛋
421Misdirected Request错误定向的请求RFC 9110HTTP/2+ 中请求发往不支持该目标主机的服务器
422Unprocessable Entity无法处理的实体RFC 9110核心标准(原 WebDAV 扩展,2022 年正式并入)。REST API 事实标准:语义/业务校验失败
423Locked已锁定RFC 4918WebDAV,资源被锁定防止并发修改
424Failed Dependency依赖失败RFC 4918WebDAV,因前置请求失败导致当前请求失败
425Too Early过早RFC 8470拒绝处理可能被重放的请求(TLS 早期数据/0-RTT)
426Upgrade Required需升级RFC 9110客户端需升级协议版本才能继续
428Precondition Required需前置条件RFC 6585要求使用条件请求头防并发覆盖(常配 If-Match
429Too Many Requests请求过多RFC 6585限流触发,通常配合 Retry-After
431Request Header Fields Too Large请求头过大RFC 6585请求头字段超过限制(如 Cookie 过大)
451Unavailable For Legal Reasons因法律原因不可用RFC 7725政府审查、版权下架、合规限制

5xx 服务器错误(Server Error)

状态码英文名称中文译名标准来源核心说明与典型场景
500Internal Server Error服务器内部错误RFC 9110通用未预料异常(代码抛异常、配置错误、依赖崩溃)
501Not Implemented未实现RFC 9110服务器不支持该请求方法
502Bad Gateway网关错误RFC 9110反向代理/网关收到上游无效响应
503Service Unavailable服务不可用RFC 9110临时过载/维护,建议配合 Retry-After
504Gateway Timeout网关超时RFC 9110代理/网关未及时收到上游响应
505HTTP Version Not SupportedHTTP 版本不支持RFC 9110服务器不支持请求的 HTTP 版本
506Variant Also Negotiates变体也协商RFC 2295📉 透明内容协商循环,现代架构极少使用
507Insufficient Storage存储空间不足RFC 4918WebDAV,服务器无法存储资源表示(磁盘满/配额超)
508Loop Detected检测到循环RFC 5842WebDAV,处理集合时检测到无限循环
510Not Extended未扩展RFC 2774📉 已基本被现代 API 弃用
511Network Authentication Required需网络认证RFC 6585拦截式门户(Captive Portal)要求登录(如酒店 WiFi)

🛠️ 本次核心修正与最佳实践

易错点修正说明工程建议
422 标准归属2022 年 RFC 9110 已将 422 从 WebDAV 提升为 HTTP 核心标准RESTful API 参数/业务校验失败时,优先使用 422 而非 400,便于前后端区分“语法错误”与“语义错误”。
302 方法转换RFC 9110 §15.4.3 明确:方法转换是历史浏览器行为,非协议强制。新项目统一使用 307(临时)/308(永久)保证方法一致性,避免 POST 数据丢失。
401 强制头RFC 9110 §15.5.2 规定:401 响应必须携带 WWW-Authenticate 挑战头。未登录/Token 失效时返回 401 并附带 WWW-Authenticate: BearerBasic
500 滥用500 仅用于未捕获的未知异常已知故障应使用更精准状态码:上游超时→504,依赖不可用→503,配置缺失→501
云厂商私有码444, 499, 520~527非 HTTP 标准,仅限特定生态内部使用。对外 API 严禁返回私有码;内部系统若使用需在文档中明确定义。

🌐 权威参考网址(官方标准)

资源类型链接说明
IANA 官方注册表https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml全球唯一权威来源,实时更新
RFC 9110(HTTP Semantics)https://www.rfc-editor.org/rfc/rfc9110.html2022 年发布,整合并替代 RFC 7231/7235/7230 等核心语义
RFC 6585(扩展状态码)https://www.rfc-editor.org/rfc/rfc6585.html428/429/431/511 来源
RFC 4918 / 5842(WebDAV)https://www.rfc-editor.org/rfc/rfc4918.html
https://www.rfc-editor.org/rfc/rfc5842.html
102/207/208/423/424/507/508 来源
RFC 8297(Early Hints)https://www.rfc-editor.org/rfc/rfc8297.html103 状态码规范
Mozilla MDN 文档https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status开发者友好解读,含浏览器兼容性说明

💡 提示:所有状态码的最终解释权以 IANA Registry 为准。实际开发中建议结合业务网关/监控体系自定义错误码(如 code: 10001, msg: "xxx"),HTTP 状态码仅用于表达传输层与协议层语义

最后修改 April 20, 2026: 更新 Rust 教程 (c0c9eff)