HTTP 状态码
HTTP 状态码(Status Code)是服务器对客户端请求的响应标识,用于表示请求的处理结果。状态码由 3 位数字 组成,分为 5 大类(1xx~5xx),每类代表不同的响应类型。
类型:
状态码详解
1. 1xx 信息性响应
表示请求已接收,服务器继续处理。
-
100 Continue (继续):客户端应继续请求操作,服务器已接收到请求头。
-
101 Switching Protocols (切换协议):服务器正在切换协议,(如从 HTTP 升级到 WebSocket)。
-
102 Processing (处理中):服务器已接收到请求,但处理尚未完成(用于 WebDAV 扩展,长时间操作)。
2. 2xx 成功
表示请求已成功被服务器接收并处理。
- 200 OK (成功):请求成功,服务器返回请求的数据(常见于 GET 请求)。
- 201 Created (已创建):请求成功,服务器已创建新的资源(常见于 POST 请求)。
- 202 Accepted (已接受):请求已接受,但尚未处理完毕(常用于异步任务)。
- 203 Non-Authoritative Information (非授权信息):请求成功,但返回的信息是从第三方获取的副本。
- 204 No Content (无内容):请求成功,但没有内容返回(如 DELETE 请求)。
- 205 Reset Content (重置内容):请求成功,客户端应重置表单等内容。
- 206 Partial Content (部分内容):服务器成功处理部分请求(用于断点续传或分片下载)。
3. 3xx 重定向
表示客户端需要进一步的操作来完成请求,通常用于 URL 重定向。
- 300 Multiple Choices (多种选择):请求的资源有多个可选响应,服务器返回一个选项列表(如不同语言版本)。
- 301 Moved Permanently (永久移动):资源已永久移动到新的 URL,未来请求应使用新 URL(浏览器会缓存)。
- 302 Found (临时移动):资源临时移动到另一个 URL,客户端应继续使用原来的 URL(浏览器不缓存)。
- 303 See Other (查看其他位置):客户端应使用 GET 请求来访问不同的 URL。
- 304 Not Modified (未修改):资源未修改,客户端可以继续使用缓存(常见于协商缓存,配合If-Modified-Since使用)。
- 307 Temporary Redirect (临时重定向):资源临时移动,客户端应继续使用原来的请求方法访问新 URL。
- 308 Permanent Redirect (永久转移):资源已永久移动,客户端应使用新的 URL 和相同的请求方法。
4. 4xx 客户端错误
表示客户端请求有误,服务器无法处理。
- 400 Bad Request (错误请求):请求无效,服务器无法理解请求(如参数格式不对)。
- 401 Unauthorized (未授权):请求需要身份验证(通常用于登录保护资源)。
- 402 Payment Required:暂未使用,最初用于数字支付服务。
- 403 Forbidden (禁止):服务器拒绝请求,即使身份验证成功也无权访问(无权限)。
- 404 Not Found (未找到):服务器找不到请求的资源(常见的“页面不存在”)。
- 405 Method Not Allowed (方法禁用):请求方法不允许用于该资源(如 GET 接口用 POST 访问)。
- 406 Not Acceptable (不接受):服务器无法根据客户端的请求头找到合适的响应资源。
- 407 Proxy Authentication Required (需要代理授权):客户端必须通过代理服务器验证身份。
- 408 Request Timeout (请求超时):请求超时,服务器未收到客户端的请求数据。
- 409 Conflict (冲突):请求与服务器的状态发生冲突(如资源版本冲突,重复提交)。
- 410 Gone (已删除):资源已永久删除,且不再可用。
- 411 Length Required (需要有效长度):请求必须指定 Content-Length 头。
- 412 Precondition Failed (未满足前提条件):请求头中的条件未满足。
- 413 Payload Too Large (请求实体过大):请求体太大,服务器无法处理(如上传文件超过限制)。
- 414 URI Too Long (请求的 URL 过长):请求 URL 太长,服务器无法处理(如 GET 参数太多)。
- 415 Unsupported Media Type (不支持的媒体类型):服务器不支持请求中的媒体格式(如上传非允许的文件格式)。
- 416 Range Not Satisfiable (请求范围不符合要求):请求的范围无效,无法提供资源的部分内容。
- 417 Expectation Failed (未满足期望值):服务器无法满足 Expect 头中的要求。
- 429 Too Many Requests (过多请求):用户已经发送了太多的请求在指定的时间里(用于限制速率)。
5. 5xx 服务器错误
表示服务器在处理请求时发生错误。
- 500 Internal Server Error (服务器内部错误):服务器遇到未预期的情况,无法完成请求。
- 501 Not Implemented (尚未实施):服务器不支持请求的功能。
- 502 Bad Gateway (错误网关):服务器作为网关或代理时收到无效响应。(如后端服务崩溃)
- 503 Service Unavailable (服务不可用):服务器暂时无法处理请求,通常是因为超载或维护。
- 504 Gateway Timeout (网关超时):服务器作为网关或代理时,未能及时从上游服务器收到响应。
- 505 HTTP Version Not Supported (HTTP 版本不受支持):服务器不支持请求所使用的 HTTP 版本。
- 507 Insufficient Storage:服务器无法存储完成请求所需的内容(用于 WebDAV)。
- 508 Loop Detected:服务器检测到请求在处理过程中出现了无限循环(用于 WebDAV)。
常见状态码
- 100 Continue 正在处理请求,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
- 200 OK 正常返回信息(memory cache 强缓存)
- 201 Created 请求成功并且服务器创建了新的资源
- 202 Accepted 服务器已接受请求,但尚未处理
- 301 Moved Permanently 请求的网页已永久移动到新位置。
- 302 Found 临时性重定向。
- 304 Not Modified 自从上次请求后,请求的网页未修改过。 协商缓存
- 307 Internal Redirect 内部重定向
- 400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
- 401 Unauthorized 请求未授权。没登录或者登录过期。
- 403 Forbidden 禁止访问。该模块没有权限访问。
- 404 Not Found 找不到如何与 URI 相匹配的资源。
- 500 Internal Server Error 最常见的服务器端错误。
- 503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。