HTTP状态码

HTTP 状态码是服务器用来告知客户端请求处理结果的 3 位数字代码。按照首位数字的不同,主要分为以下 5 大类:

  • 1xx:信息性状态码(Informational)
  • 2xx:成功状态码(Success)
  • 3xx:重定向状态码(Redirection)
  • 4xx:客户端错误状态码(Client Error)
  • 5xx:服务器错误状态码(Server Error)

以下是各类别的详细状态码及其含义:

1xx 信息性状态码

表示请求已被接收,需要继续处理。这类响应是临时响应,只包含状态行和某些可选的响应头信息。

状态码 描述 含义与场景
100 Continue 客户端应继续发送请求的剩余部分(常用于大文件上传)。
101 Switching Protocols 服务器同意客户端的请求,将切换协议(如切换到 WebSocket)。
102 Processing 服务器已接收请求并正在处理,但尚无响应(WebDAV 扩展)。
103 Early Hints 服务器在最终响应前,提前返回一些预加载指令(如提前加载 CSS、JS)。

2xx 成功状态码

表示请求已成功被服务器接收、理解并处理。

状态码 描述 含义与场景
200 OK 请求成功,是最通用的成功状态码。
201 Created 请求成功,并且服务器创建了新的资源(如新增用户、上传文件)。
202 Accepted 服务器已接受请求,但尚未处理完成(常用于异步任务)。
203 Non-Authoritative Information 请求成功,但返回的元信息不是来自原始服务器,而是一个副本。
204 No Content 请求成功,但响应报文中不包含实体的主体部分(常用于 DELETE 请求)。
205 Reset Content 请求成功,要求客户端(如浏览器)重置文档视图(如清空表单)。
206 Partial Content 服务器成功处理了部分 GET 请求(常用于断点续传、视频分片加载)。
207 Multi-Status 代表之后将发送的消息为 XML 消息,包含一系列独立的响应代码(WebDAV 扩展)。

3xx 重定向状态码

表示需要客户端采取进一步的操作才能完成请求,通常用于资源跳转。

状态码 描述 含义与场景
300 Multiple Choices 请求的资源有多个位置可供选择,服务器返回资源列表供用户选择。
301 Moved Permanently 请求的资源已被永久移动到新 URI,搜索引擎会更新索引。
302 Found 请求的资源临时从不同的 URI 响应请求(浏览器通常会自动跳转)。
303 See Other 对应资源存在,但需用 GET 方法访问另一个 URI 来获取。
304 Not Modified 资源未修改,客户端可以使用缓存的版本。
305 Use Proxy 请求的资源必须通过代理来访问。
306 Switch Proxy 已不再使用,原意为后续请求应使用指定的代理。
307 Temporary Redirect 与 302 类似,但严格要求保持原有的请求方法(如 POST 仍为 POST)。
308 Permanent Redirect 与 301 类似,但严格要求保持原有的请求方法。

4xx 客户端错误状态码

表示客户端的请求有误,服务器无法处理。

状态码 描述 含义与场景
400 Bad Request 客户端请求有语法错误,服务器无法理解。
401 Unauthorized 请求需要用户认证(如未登录或 Token 失效)。
402 Payment Required 保留状态码,原意为需要付款才能访问。
403 Forbidden 服务器理解请求,但拒绝执行(通常是权限不足)。
404 Not Found 服务器上找不到请求的资源。
405 Method Not Allowed 请求行中指定的请求方法(如 GET/POST)不能被用于请求的资源。
406 Not Acceptable 请求的资源的内容特性无法满足请求头中的条件。
407 Proxy Authentication Required 类似于 401,但要求客户端必须先通过代理服务器的认证。
408 Request Timeout 客户端没有在服务器预备等待的时间内完成请求的发送。
409 Conflict 请求与资源当前的状态存在冲突。
410 Gone 请求的资源已永久删除,且不可恢复。
411 Length Required 服务器不接受没有定义 Content-Length 的请求。
412 Precondition Failed 请求头中指定的前提条件失败。
413 Request Entity Too Large 请求的实体过大,服务器无法或不愿处理。
414 Request-URI Too Long 请求的 URI 过长,服务器无法处理。
415 Unsupported Media Type 请求的格式不受支持(如上传了不支持的文件类型)。
416 Requested Range Not Satisfiable 请求中包含 Range 请求头,但指定的范围无法满足。
417 Expectation Failed 服务器无法满足请求头中 Expect 字段的要求。
421 Misdirected Request 请求被指向了无法生成响应的服务器。
422 Unprocessable Entity 请求格式正确,但语义有误(常用于表单验证失败)。
423 Locked 当前资源被锁定(WebDAV 扩展)。
424 Failed Dependency 由于之前的请求失败,导致本次请求失败(WebDAV 扩展)。
425 Too Early 服务器不愿意处理可能会被重放的请求。
426 Upgrade Required 客户端应当切换到 TLS/1.0 或更高的协议。
429 Too Many Requests 客户端在单位时间内发送了过多的请求(限流)。
449 Retry With 请求应当在执行适当的动作后重试(微软扩展)。

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 服务器无法存储完成请求所必须的内容。
508 Loop Detected 服务器在处理请求时检测到死循环(WebDAV 扩展)。
509 Bandwidth Limit Exceeded 服务器已达到带宽限制(非官方标准,但常见于虚拟主机)。
510 Not Extended 获取资源所需的策略没有被满足。
511 Network Authentication Required 客户端需要进行身份验证才能获得网络访问权限。

注意
部分服务器软件如 IIS 还会定义更细分的子状态码,例如 503.2 表示并发请求数超限,用于更精确的故障排查。)*

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐