开发辅助
HTTP 状态码大全
按分类浏览全部 HTTP 状态码,含含义与常见原因。
收录 72 个状态码:RFC 标准码以及 nginx、Cloudflare 等广泛使用的扩展,并按分类给出常见原因。
信息性响应
请求已收到,服务器正在继续处理。
- 100
Continue 继续
服务器已收到请求头,客户端可以继续发送请求体。
- 101
Switching Protocols 切换协议
服务器同意客户端发起的协议切换请求。
常见原因 WebSocket 握手成功时的正常响应。
- 102
Processing 处理中
服务器已收到请求,仍在处理中。
常见原因 WebDAV 扩展,用于避免长时间请求被判定超时。
- 103
Early Hints 早期提示
在最终响应之前发送的预告响应。
常见原因 让浏览器在服务器计算期间就按 Link 头预加载资源。
成功
请求已被成功接收、理解并处理。
- 200
OK 成功
请求成功,响应体中包含结果。
- 201
Created 已创建
已创建新资源,通常会带有 Location 头。
- 202
Accepted 已接受
请求已被接受,但尚未处理完成。
常见原因 异步任务的典型响应,之后需要轮询结果。
- 203
Non-Authoritative Information 非授权信息
响应来自做过转换的代理,而不是源服务器原始内容。
- 204
No Content 无内容
请求成功,且有意不返回响应体。
常见原因 DELETE 与 PUT 常用;此时返回响应体属于协议错误。
- 205
Reset Content 重置内容
客户端应重置文档视图,例如清空表单。
- 206
Partial Content 部分内容
仅返回请求的那一段字节范围。
常见原因 断点续传与视频拖动播放依赖这个状态码。
- 207
Multi-Status 多状态
响应体包含多个互相独立的状态结果。
常见原因 WebDAV 扩展,PROPFIND 等批量操作会用到。
- 208
Already Reported 已报告
绑定成员已在前面的响应中报告,不再重复。
常见原因 WebDAV 扩展,避免同一资源被重复枚举。
- 226
IM Used 已使用实例操纵
服务器完成了对资源的增量编码请求。
常见原因 较少见,与 Delta 编码扩展相关。
重定向
客户端需要进一步操作才能完成请求。
- 300
Multiple Choices 多种选择
存在多种可选表示,客户端应自行选择。
- 301
Moved Permanently 永久移动
资源已永久迁移到新的 URL。
常见原因 搜索引擎会把权重转移到新地址,适合真正的迁移。
- 302
Found 临时移动
资源临时位于另一个 URL。
常见原因 历史上浏览器会把 POST 改成 GET,需要保留方法时用 307。
- 303
See Other 查看其他位置
可以用 GET 请求从另一个 URL 获取结果。
常见原因 POST 提交成功后的标准重定向方式。
- 304
Not Modified 未修改
缓存副本仍然有效,因此不返回响应体。
常见原因 由 If-None-Match 或 If-Modified-Since 触发,不是错误。
- 305
Use Proxy 使用代理
必须通过指定的代理访问该资源。
常见原因 出于安全考虑已废弃,新代码不应再使用。
- 307
Temporary Redirect 临时重定向
临时重定向,且保持原有的请求方法与请求体。
- 308
Permanent Redirect 永久重定向
永久重定向,同样保持原有请求方法与请求体。
常见原因 当 POST 必须保持为 POST 时应使用它而不是 301。
客户端错误
问题出在请求本身:语法错误、缺少凭据或没有权限。
- 400
Bad Request 请求错误
请求语法或参数有误,服务器无法处理。
常见原因 优先检查请求体、查询参数与 Content-Type。
- 401
Unauthorized 未认证
需要身份认证,但凭据缺失或无效。
常见原因 名字有误导性:它表示"未认证",而不是"无权限"。
- 402
Payment Required 需要付费
为付费访问保留,如今很少按原意使用。
常见原因 部分 API 在套餐额度用尽时返回该状态码。
- 403
Forbidden 禁止访问
服务器理解请求,但拒绝授权。
常见原因 凭据有效但权限不足,重试没有意义。
- 404
Not Found 未找到
服务器找不到与请求 URL 匹配的资源。
常见原因 检查路径拼写,以及服务器是否注册了该路由。
- 405
Method Not Allowed 方法不允许
资源存在,但不支持该 HTTP 方法。
常见原因 查看响应中的 Allow 头可知支持哪些方法。
- 406
Not Acceptable 不可接受
没有符合客户端 Accept 头要求的表示形式。
常见原因 常见于 Accept 或 Accept-Language 头要求过严。
- 407
Proxy Authentication Required 需要代理认证
客户端需要先向代理服务器进行认证。
常见原因 出现在需要凭据的企业代理之后。
- 408
Request Timeout 请求超时
服务器等待请求剩余部分时超时。
常见原因 通常是客户端网络慢或连接中断,而非服务端问题。
- 409
Conflict 冲突
请求与资源当前状态发生冲突。
常见原因 典型场景:两个写入方并发更新同一条记录。
- 410
Gone 已删除
资源曾经存在,但已被永久移除。
常见原因 与 404 不同,它明确告知客户端不要再请求并移除链接。
- 411
Length Required 需要内容长度
请求缺少 Content-Length 头。
常见原因 POST 与 PUT 必须声明请求体长度;使用分块编码可避免该头。
- 412
Precondition Failed 前置条件失败
If-Match 等条件请求头判断为假。
常见原因 用于乐观锁;应重新读取资源后再重试。
- 413
Content Too Large 内容过大
请求体超过服务器允许的大小限制。
常见原因 需要调大 nginx 的 client_max_body_size 或上游的同类限制。
- 414
URI Too Long URI 过长
请求的 URL 超过服务器愿意解析的长度。
常见原因 常见于把过多数据塞进 GET 查询串。
- 415
Unsupported Media Type 不支持的媒体类型
该请求体格式不被此方法与资源支持。
常见原因 确认 Content-Type 与接口解析格式一致,例如 application/json。
- 416
Range Not Satisfiable 范围无法满足
请求的字节范围无法满足。
常见原因 通常是过期的 Range 头指向了文件末尾之外。
- 417
Expectation Failed 期望失败
Expect 头中给出的期望无法被满足。
常见原因 代理无法满足 Expect: 100-continue 时会出现。
- 418
I'm a teapot 我是茶壶
源自愚人节玩笑,作为彩蛋一直保留至今。
常见原因 有时被用来有意拦截不受欢迎的爬虫。
- 421
Misdirected Request 请求被错误定向
连接被复用于服务器无法服务的域名。
常见原因 常见于 HTTP/2 连接合并与 SNI 不匹配时。
- 422
Unprocessable Content 无法处理的实体
语法正确,但内容未通过语义校验。
常见原因 表单校验或 Schema 校验失败时的常见响应。
- 423
Locked 已锁定
资源已被锁定,无法修改。
常见原因 WebDAV 扩展,用于协同编辑场景。
- 424
Failed Dependency 依赖失败
由于同一批次中的前置请求失败,本请求也失败。
常见原因 WebDAV 扩展,通常与 207 多状态配合出现。
- 425
Too Early 过早
服务器拒绝处理可能被重放的请求。
常见原因 针对无法安全重放的 TLS 早期数据(0-RTT)。
- 426
Upgrade Required 需要升级
客户端必须切换到其他协议,通常是 TLS。
常见原因 拒绝明文 HTTP 的服务器会返回该状态码。
- 428
Precondition Required 需要前置条件
服务器要求该请求必须是条件请求。
常见原因 用于防止并发编辑造成的更新丢失。
- 429
Too Many Requests 请求过多
客户端在给定时间内发送了过多请求。
常见原因 查看 Retry-After 头确定重试时间,并做退避。
- 431
Request Header Fields Too Large 请求头过大
请求头超过服务器允许的大小。
常见原因 常见于过大的 Cookie;确需支持时调大 large_client_header_buffers。
- 451
Unavailable For Legal Reasons 因法律原因不可用
资源因法律或监管原因被屏蔽。
常见原因 命名取自《华氏 451 度》,用于地域或法院要求的屏蔽。
- 444
No Response 无响应 nginx
服务器直接关闭连接,不返回任何内容。
常见原因 nginx 专有;通常是 nginx 主动丢弃可疑或滥用连接。
- 499
Client Closed Request 客户端关闭请求 nginx
服务器尚未返回结果,客户端就断开了连接。
常见原因 nginx 在客户端放弃时记录该码;应排查后端响应过慢。
服务端错误
请求本身看起来正常,但服务器处理失败。
- 500
Internal Server Error 服务器内部错误
服务器遇到无法处理的意外情况。
常见原因 请查看服务端日志:通常与请求内容无关。
- 501
Not Implemented 未实现
服务器不支持所要求的功能。
常见原因 常见于该路由未实现对应的 HTTP 方法。
- 502
Bad Gateway 网关错误
网关或代理从上游收到了无效响应。
常见原因 通常是后端进程已停止,或在响应中途崩溃。
- 503
Service Unavailable 服务不可用
服务器暂时无法处理请求。
常见原因 过载或维护中;Retry-After 可能给出恢复时间。
- 504
Gateway Timeout 网关超时
网关或代理未能及时收到上游响应。
常见原因 需要调大代理读取超时,或优化后端处理速度。
- 505
HTTP Version Not Supported HTTP 版本不支持
服务器不支持请求中使用的 HTTP 版本。
常见原因 如今较少见,主要是仅支持 HTTP/1.1 的服务器收到更新的协议。
- 506
Variant Also Negotiates 变体也会协商
内容协商配置错误,导致自我循环。
常见原因 属于服务器配置缺陷,而非客户端问题。
- 507
Insufficient Storage 存储空间不足
服务器无法存储完成请求所需的表示。
常见原因 WebDAV 扩展;请检查服务器磁盘与配额。
- 508
Loop Detected 检测到循环
服务器在处理请求时检测到无限循环。
常见原因 WebDAV 扩展,通常是集合层级出现环。
- 510
Not Extended 未扩展
需要对请求做进一步扩展才能完成。
常见原因 属于未被广泛采用的 HTTP 扩展框架,实际很少遇到。
- 511
Network Authentication Required 需要网络认证
客户端需要通过认证才能获得网络访问权限。
常见原因 酒店与机场 Wi-Fi 的登录门户页面就是它。
- 520
Web Server Returned an Unknown Error 源站返回未知错误 Cloudflare
Cloudflare 从源站收到空响应或未知响应。
常见原因 检查源站日志,确认进程是否在请求中途崩溃。
- 521
Web Server Is Down 源站已下线 Cloudflare
源站拒绝连接,Cloudflare 无法建立连接。
常见原因 Web 服务未运行,或防火墙拦截了 Cloudflare 的 IP。
- 522
Connection Timed Out 连接超时 Cloudflare
与源站的 TCP 握手超时。
常见原因 源站防火墙静默丢弃了来自 Cloudflare 的数据包。
- 523
Origin Is Unreachable 源站不可达 Cloudflare
Cloudflare 完全无法到达源站。
常见原因 通常是源站 IP 填写错误或 DNS 记录异常。
- 524
A Timeout Occurred 响应超时 Cloudflare
源站已接受连接,但响应时间过长。
常见原因 源站超过 Cloudflare 的 100 秒上限;应优化慢接口。
- 525
SSL Handshake Failed SSL 握手失败 Cloudflare
Cloudflare 与源站之间的 TLS 握手失败。
常见原因 检查源站证书、加密套件与 TLS 版本。
- 526
Invalid SSL Certificate SSL 证书无效 Cloudflare
无法验证源站的证书。
常见原因 证书已过期、自签名,或与域名不匹配。
- 527
Railgun Listener to Origin Error Railgun 到源站出错 Cloudflare
Railgun 与源站之间的连接失败。
常见原因 属于已停用的 Railgun 特性;可重试或关闭 Railgun。