HTTP 响应码表
| Code | 名称 | 含义 |
|---|---|---|
| 1xx 信息响应 | ||
| 100 | Continue | 服务器已收到请求头,客户端应发送请求体。 |
| 101 | Switching Protocols | 服务器同意切换到 Upgrade 头中请求的协议。 |
| 102 | Processing | 服务器已接受完整请求,但尚未处理完成(WebDAV)。 |
| 103 | Early Hints | 在最终响应之前发送的初步响应头,主要是 Link 预加载提示。 |
| 2xx 成功 | ||
| 200 | OK | 请求成功,响应中携带了所请求的表示。 |
| 201 | Created | 请求成功,并创建了新资源,通常在 Location 中给出其名称。 |
| 202 | Accepted | 请求已被接受,进入异步处理,但尚未完成。 |
| 203 | Non-Authoritative Information | 响应在传输途中被转换代理修改过。 |
| 204 | No Content | 请求成功,并且有意不返回响应体。 |
| 205 | 重置 Content | 请求成功,客户端应重置文档视图或表单。 |
| 206 | Partial Content | 响应仅返回由 Range 头请求的字节范围。 |
| 3xx 重定向 | ||
| 300 | Multiple Choices | 存在多种表示形式,客户端应从中选择一种。 |
| 301 | Moved Permanently | 资源拥有一个永久性的新 URL,链接应予以更新。 |
| 302 | Found | 资源暂时位于另一个 URL;请继续使用原始地址。 |
| 303 | See Other | 结果可在另一个 URL 获取,应使用 GET 方法请求。 |
| 304 | Not Modified | 缓存副本仍然有效,因此不再发送响应体。 |
| 307 | Temporary Redirect | 必须保留原始 HTTP 方法和请求体的临时重定向。 |
| 308 | Permanent Redirect | 必须保留原始 HTTP 方法和请求体的永久重定向。 |
| 4xx 客户端错误 | ||
| 400 | Bad Request | 由于请求格式错误,服务器无法处理该请求。 |
| 401 | Unauthorized | 需要有效的身份验证凭据,但当前缺失或不正确。 |
| 402 | Payment Required | 保留状态码,实际中被一些 API 用于计费限制场景。 |
| 403 | Forbidden | 服务器已理解请求,但拒绝授权执行。 |
| 404 | Not Found | 请求的 URL 上不存在任何资源。 |
| 405 | Method Not Allowed | URL 存在,但不支持该 HTTP 方法。 |
| 406 | Not Acceptable | 没有任何表示形式能匹配 Accept 协商头。 |
| 407 | Proxy Authentication Required | 客户端必须先向代理进行身份验证。 |
| 408 | Request Timeout | 由于请求到达耗时过长,服务器关闭了连接。 |
| 409 | Conflict | 请求与资源的当前状态冲突,例如编辑冲突。 |
| 410 | Gone | 资源已被有意移除,并且不会恢复。 |
| 411 | Length Required | 请求必须包含 Content-Length 头。 |
| 412 | Precondition Failed | 诸如 If-Match 之类的条件头判定为假。 |
| 413 | Content Too Large | 请求体超过了服务器可接受的大小。 |
| 414 | URI Too Long | 请求 URL 的长度超出了服务器可解析的范围。 |
| 415 | Unsupported Media Type | 该资源不支持请求体所使用的格式。 |
| 416 | Range Not Satisfiable | 请求的字节范围超出了资源的大小。 |
| 417 | Expectation Failed | 无法满足 Expect 请求头的要求。 |
| 418 | I'm a teapot | 出自 RFC 2324 的愚人节状态码;一些 API 将其用作彩蛋。 |
| 421 | Misdirected Request | 请求到达了无法为该权威机构生成响应的服务器。 |
| 422 | Unprocessable Content | 请求格式正确,但语义上无效,常见于 REST 校验场景。 |
| 425 | Too Early | 服务器拒绝处理可能被重放的请求(TLS early data)。 |
| 426 | Upgrade Required | 客户端必须切换到 Upgrade 中列出的其他协议。 |
| 428 | Precondition Required | 服务器要求使用条件请求以防止更新丢失。 |
| 429 | Too Many Requests | 客户端超出了速率限制;Retry-After 提示应何时重试。 |
| 431 | Request Header Fields Too Large | 请求头(通常是 cookie)超出了服务器的大小限制。 |
| 451 | Unavailable For Legal Reasons | 因法律原因(例如法院命令)而被禁止访问。 |
| 5xx 服务器错误 | ||
| 500 | Internal Server Error | 服务器在处理请求时遇到了意外错误。 |
| 501 | Not Implemented | 服务器无法识别或不支持该请求方法。 |
| 502 | Bad Gateway | 网关或代理从上游服务器收到了无效响应。 |
| 503 | Service Unavailable | 由于过载或维护,服务器暂时无法提供服务。 |
| 504 | Gateway Timeout | 网关或代理等待上游服务器响应超时。 |
| 505 | HTTP Version Not Supported | 服务器不支持所使用的 HTTP 协议版本。 |
| 506 | Variant Also Negotiates | 服务器上的内容协商配置错误。 |
| 507 | Insufficient Storage | 服务器没有足够的存储空间来完成请求(WebDAV)。 |
| 508 | Loop Detected | 服务器在处理过程中检测到无限循环(WebDAV)。 |
| 510 | Not Extended | 请求需要进一步的扩展,但未提供。 |
| 511 | Network Authentication Required | 网络(例如强制门户)要求先进行身份验证。 |
1xx 信息响应
信息响应确认请求已被接收,客户端可以继续。它们是临时性的:最终一定会跟随一个正式状态码。你在实际中最可能遇到的是 103 Early Hints,它允许服务器在完整响应就绪前推送预加载提示。
2xx 成功
成功响应表示请求已被理解并接受。200 OK 在响应体中携带结果,201 Created 表示创建了新资源,204 No Content 表示成功但故意不返回任何内容。
3xx 重定向
重定向响应将客户端指向别处。关键区别在于是否永久——301/308 是永久的,302/307 是临时的——以及 HTTP 方法是必须保留(307/308)还是可以变为 GET(301/302)。304 Not Modified 是支撑浏览器缓存的特殊情况。
4xx 客户端错误
客户端错误意味着请求本身被拒绝。常见的有:400 请求格式错误、401 需要身份验证、403 拒绝访问、404 该 URL 不存在内容,以及 429 超出速率限制。
5xx 服务器错误
服务器错误意味着服务器在处理一个可能完全合法的请求时失败了。500 是应用程序崩溃,502 和 504 是代理报告上游出现故障或无响应,503 则是有意为之的临时不可用。
如何解读状态码
首位数字代表类别:1xx 信息响应、2xx 成功、3xx 重定向、4xx 客户端错误、5xx 服务器错误。客户端遇到未知状态码时,可以安全地将其当作所属类别的 x00 状态码处理——这正是新状态码能保持向后兼容的原因。调试时,务必结合状态码旁边的响应头一起看:Location 说明重定向去向,Allow 说明 405 的原因,Retry-After 说明 429 和 503 的原因。
示例
200 OK — page served normally 301 Moved Permanently — URL changed for good, follow Location 304 Not Modified — your cached copy is still valid 404 Not Found — nothing exists at this URL 429 Too Many Requests — rate limit hit, wait Retry-After seconds 503 Service Unavailable — temporary downtime or maintenance
常见问题
什么是 HTTP 404?
HTTP 404 表示在指定 URL 找不到请求的资源。查看详细的 404 指南以了解原因、修复方法和 SEO 影响。
301 与 302 有什么区别?
301 重定向是永久的——链接和搜索引擎都应更新为新 URL。302 表示临时迁移,原 URL 仍是规范地址。
503 代表什么?
HTTP 503 表示服务暂时不可用,通常是由于维护或过载,客户端应在延迟后重试。
401 和 403 有什么区别?
401 表示服务器需要有效的身份验证凭据。403 表示服务器已经知道你是谁,但仍然拒绝访问——重新登录也无济于事。
502 和 504 有什么区别?
两者都来自与上游服务器通信的代理:502 表示上游返回了无效响应,504 表示上游在超时时间内始终没有响应。
哪些状态码对 SEO 最重要?
200 标记可被索引的页面,301/308 在永久迁移时传递排名权重,404/410 移除失效 URL,503 在配合 Retry-After 使用时可在停机期间保护排名。