有哪些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
网关超时,上游服务器没及时返回。
