DevToolPal
简

HTTP 状态码

用通俗的话解释每一个 HTTP 状态码:它是什么意思、常见原因、怎么解决、响应示例,以及定义它的 RFC。

共 70 个状态码

1xx 信息

临时响应:请求已收到,正在继续处理。

2xx 成功

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

3xx 重定向

客户端需要再做一步,通常是跳转到新的 URL。

4xx 客户端错误

请求本身有问题,需要客户端修正。

400 Bad Request 错误请求 请求格式有误,服务器无法处理:语法无效、报文结构错误或包含无法解析的值。 401 Unauthorized 未授权 请求缺少有效的身份认证凭据。名字虽叫“未授权”,实际意思是“未认证”:需要登录或发送有效令牌。 402 Payment Required 需要付款 保留供将来使用,但实际上很多服务在需要付款或付费套餐才能继续时返回它。 403 Forbidden 禁止访问 服务器理解了请求但拒绝授权。除非权限发生变化,重新登录也没有用。 404 Not Found 未找到 服务器在请求的 URL 上找不到任何内容。它不说明资源是否曾经存在或将来是否会恢复。 405 Method Not Allowed 方法不允许 URL 存在,但不支持所使用的 HTTP 方法。Allow 头列出了可用的方法。 406 Not Acceptable 无法接受 服务器无法生成客户端 Accept 头所允许的任何格式的响应。 407 Proxy Authentication Required 需要代理认证 客户端和服务器之间的代理要求先进行认证,才会转发请求。 408 Request Timeout 请求超时 客户端没有在规定时间内发送完整的请求,服务器关闭了连接。 409 Conflict 冲突 请求与资源的当前状态冲突,例如重复数据或并发编辑。 410 Gone 已删除 资源已永久消失,且没有已知的新地址。与 404 不同,这是服务器有意声明的。 411 Length Required 需要长度 服务器要求提供 Content-Length 头,但请求中没有。 412 Precondition Failed 前提条件失败 请求头中的前提条件(如 If-Match 或 If-Unmodified-Since)判定为假,因此服务器没有执行该请求。 413 Content Too Large 内容过大 请求体超过了服务器愿意或能够处理的大小。以前称为 Payload Too Large。 414 URI Too Long URI 过长 请求的 URL 超过了服务器愿意解析的长度。 415 Unsupported Media Type 不支持的媒体类型 请求体的媒体类型(Content-Type)或编码不受支持,服务器拒绝了请求。 416 Range Not Satisfiable 范围无法满足 Range 头请求的字节超出了资源的大小。 417 Expectation Failed 预期失败 服务器无法满足请求中 Expect 头的要求,通常是 Expect: 100-continue。 418 I'm a teapot 我是茶壶 来自超文本咖啡壶控制协议的愚人节玩笑:服务器是一把茶壶,拒绝煮咖啡。有些网站用它开玩笑或拦截机器人。 421 Misdirected Request 请求被误导 请求到达了一台没有配置为该主机提供服务的服务器,常见原因是 HTTP/2 连接被复用到了另一个域名。 422 Unprocessable Content 无法处理的内容 请求格式正确但包含语义错误,服务器无法处理。以前称为 Unprocessable Entity。 423 Locked 已锁定 WebDAV:资源已被锁定,无法执行该方法。 424 Failed Dependency 依赖失败 WebDAV:操作失败,因为它依赖的同一请求中的另一个操作失败了。 425 Too Early 为时过早 服务器拒绝处理通过 TLS 1.3 早期数据(0-RTT)发送的请求,因为它可能被重放。 426 Upgrade Required 需要升级 服务器拒绝用当前协议处理请求,要求客户端升级到 Upgrade 头中指定的协议,例如 TLS 或 HTTP/2。 428 Precondition Required 需要前提条件 服务器要求请求必须是条件请求(If-Match 等),以防止更新丢失。 429 Too Many Requests 请求过多 客户端在一定时间内发送了太多请求(被限流)。Retry-After 可能说明需要等待多久。 431 Request Header Fields Too Large 请求头字段过大 请求头太大,可能是某一个请求头过大,也可能是所有请求头加起来过大。 451 Unavailable For Legal Reasons 因法律原因不可用 由于法院命令或政府审查等法律原因,服务器无法提供该资源。这个数字致敬了《华氏 451》。 499 Client Closed Request (非标准) 客户端关闭请求 当客户端在服务器发送响应之前关闭连接时,nginx 会记录 499。客户端永远看不到这个状态码。

5xx 服务器错误

请求有效,但服务器没能完成它。

500 Internal Server Error 服务器内部错误 服务器遇到意外情况,无法完成请求。这是服务器端错误的通用兜底状态码。 501 Not Implemented 未实现 服务器不支持完成请求所需的功能,通常是不支持请求方法本身。 502 Bad Gateway 网关错误 网关或代理从它转发请求的上游服务器收到了无效响应。 503 Service Unavailable 服务不可用 服务器由于过载或维护暂时无法处理请求。Retry-After 可能说明何时再试。 504 Gateway Timeout 网关超时 网关或代理没有及时从上游服务器收到响应。 505 HTTP Version Not Supported HTTP 版本不受支持 服务器不支持请求中使用的 HTTP 版本。 506 Variant Also Negotiates 变体也在协商 透明内容协商配置错误:被选中的变体本身又被设置为参与协商,形成循环。 507 Insufficient Storage 存储空间不足 服务器无法存储完成请求所需的内容(磁盘空间或配额不足)。起源于 WebDAV。 508 Loop Detected 检测到循环 服务器在处理 Depth: infinity 的请求(WebDAV)时检测到无限循环。一些主机商也用它表示资源限制。 510 Not Extended 未扩展 服务器需要更多扩展才能完成请求(HTTP 扩展框架)。该框架现已成为历史。 511 Network Authentication Required 需要网络认证 客户端需要先认证才能访问网络,常见于强制门户(酒店或机场 Wi-Fi)。 520 Web Server Returned an Unknown Error (非标准) 未知错误 Cloudflare 专用:源服务器返回了空的、未知的或意外的响应。 521 Web Server Is Down (非标准) 服务器已关闭 Cloudflare 专用:源服务器拒绝了连接。 522 Connection Timed Out (非标准) 连接超时 Cloudflare 专用:与源服务器的 TCP 连接超时。 523 Origin Is Unreachable (非标准) 源站不可达 Cloudflare 专用:Cloudflare 无法访问源服务器,通常是 DNS 或路由问题。 524 A Timeout Occurred (非标准) 发生超时 Cloudflare 专用:已与源服务器建立连接,但源服务器没有及时发送 HTTP 响应(默认 100 秒)。 525 SSL Handshake Failed (非标准) SSL 握手失败 Cloudflare 专用:Cloudflare 与源服务器之间的 TLS 握手失败。 526 Invalid SSL Certificate (非标准) 无效的 SSL 证书 Cloudflare 专用:在 Full (strict) SSL 模式下,源服务器的证书无效、已过期、自签名或与主机名不匹配。