有哪些HTTP状态码及其详细含义?

摘要:我给你整理一份HTTP 状态码最全、最清晰、面试工作都能直接用的版本,按1xx、2xx、3xx、4xx、5xx分类,每个状态码含义 + 场景 + 同类型区别一次性讲透。 一、1xx:信息性状态码(临时响
我给你整理一份HTTP 状态码最全、最清晰、面试/工作都能直接用的版本,按1xx、2xx、3xx、4xx、5xx分类,每个状态码含义 + 场景 + 同类型区别一次性讲透。 一、1xx:信息性状态码(临时响应) 含义:请求已接收,服务器正在处理,客户端应继续发送请求。 很少直接用到,一般是底层协议交互。 100 Continue 客户端可以继续发送请求,一般用于大文件上传前的预检。 101 Switching Protocols 服务器正在切换协议(如升级到 WebSocket)。 同类型区别: 都是中间状态,不代表业务成功/失败,只表示通信过程。 二、2xx:成功状态码 含义:请求已正常接收、理解、处理完毕。 200 OK 请求完全成功,最常用。 GET/POST 正常返回都用它。 201 Created 请求成功,并创建了新资源(POST 新建用户/订单)。 202 Accepted 请求已接受,但尚未处理完成(异步任务)。 204 No Content 成功,但返回空响应体。 常用于删除、更新接口。 206 Partial Content 部分内容请求成功(断点续传、分片下载)。 同类型区别: 200:通用成功 201:创建成功 204:成功但无返回数据 206:部分数据成功 三、3xx:重定向状态码 含义:客户端需要进一步操作才能完成请求。 1. 永久重定向 301 Moved Permanently 资源永久迁移,SEO 权重转移。 2. 临时重定向 302 Found 临时移动,以前会把 POST 改成 GET。 307 Temporary Redirect 临时重定向,严格保留请求方法(POST 还是 POST)。 308 Permanent Redirect 永久重定向,严格保留请求方法。 3. 缓存/未修改 304 Not Modified 资源未修改,使用客户端缓存。 3xx 核心区别(面试必考) 301 / 308:永久 → 浏览器/搜索引擎会缓存 302 / 307:临时 → 不缓存 302:可能改 GET 307 / 308:不改变请求方法(现代标准) 304:和重定向无关,是缓存协商 四、4xx:客户端错误 含义:请求有问题,客户端需要修改。 400 Bad Request 请求参数/格式错误。 401 Unauthorized 未认证,需要登录。 403 Forbidden 已认证,但无权限。 404 Not Found 资源不存在。 405 Method Not Allowed 请求方法不支持(如 GET 接口用 POST)。 408 Request Timeout 请求超时。 409 Conflict 资源冲突(如重复提交、版本冲突)。 413 Payload Too Large 请求体太大。 415 Unsupported Media Type 不支持的媒体类型(如 Content-Type 错误)。 422 Unprocessable Entity 参数格式正确,但业务校验失败。 429 Too Many Requests 请求频率超限(限流)。 4xx 最容易混淆的区别 401 vs 403 401:没登录 → 请先登录 403:登录了,但不让访问 400 vs 422 400:语法/格式错(JSON 不合法) 422:格式对,但业务错(手机号格式对但不存在) 五、5xx:服务器错误 含义:服务器处理失败,不是客户端的锅。 500 Internal Server Error 服务器未知错误(代码异常、空指针等)。 502 Bad Gateway 网关无效,上游服务器挂了/没响应。 503 Service Unavailable 服务暂时不可用(维护、过载、熔断)。 504 Gateway Timeout 网关超时,上游服务器没及时返回。
阅读全文