一、总览:状态码的 5 个大类(第一位数字)

分类
范围
类别名称
核心含义
1xx
100–101
信息响应
请求已被接收,继续处理
2xx
200–206
成功
请求成功完成
3xx
300–308
重定向
需要进一步操作(如跳转)
4xx
400–451
客户端错误
请求有误或被拒绝(问题出在客户端)
5xx
500–511
服务器错误
服务器未能完成有效请求(问题出在服务器)
记忆技巧
1xx:告诉你“收到,还在处理”。
2xx:“一切 OK”。
3xx:“去别处找”。
4xx:“你(客户端)错了”。
5xx:“我(服务器)错了”。

二、详细分类与常见状态码

1. 1xx 信息响应

状态码
短语
含义
100
Continue
客户端应继续发送请求(用于大请求体,客户端先发部分头部,服务器返回 100 表示可以继续发 body)
101
Switching Protocols
服务器同意切换协议(如从 HTTP 升级到 WebSocket)
实际开发中很少直接处理 1xx,但了解有助于理解 HTTP 通信细节。

2. 2xx 成功

状态码
短语
含义
200
OK
最常⻅
。请求成功,返回内容
201
Created
请求成功且服务器创建了新资源(通常用于 POST 或 PUT 后)
202
Accepted
请求已接受,但尚未处理完成(适用于异步任务)
204
No Content
请求成功,但响应体中无内容(常用于 DELETE 或需要刷新的场景)
206
Partial Content
返回部分内容,用于断点续传或范围请求(如视频拖拽)

3. 3xx 重定向

状态码
短语
含义
301
Moved Permanently
永久重定向
,资源新 URL 固定,以后请使用新地址(搜索引擎会更新索引)
302
Found (Previously "Moved Temporarily")
临时重定向
,资源暂时换地方,下次还用旧 URL
303
See Other
通常用于 POST 后重定向到 GET 结果页面(防止重复提交)
304
Not Modified
缓存相关
。资源未变化,请直接使用缓存
307
Temporary Redirect
类似 302,但
不允许改变请求方法
(如 POST 不能变成 GET)
308
Permanent Redirect
类似 301,但
不允许改变请求方法
301 vs 302 要点
301:永久,浏览器/搜索引擎会更新书签。
302:临时,下次仍访问原 URL。

4. 4xx 客户端错误(重点记忆)

状态码
短语
含义
典型场景
400
Bad Request
请求语法错误或无法理解
参数格式不对、JSON 解析失败
401
Unauthorized
缺少认证
,通常需要登录
未提供 token,或 token 过期
403
Forbidden
拒绝访问
,即使认证了也无权限
普通用户试图访问管理员页面
404
Not Found
资源不存在
URL 输错、接口已删除
405
Method Not Allowed
方法不被允许
对接口用了 DELETE,但它只支持 GET
408
Request Timeout
请求超时
客户端发送请求太慢,服务器放弃等待
413
Payload Too Large
请求体过大
上传文件超过服务器限制
414
URI Too Long
URL 过长
GET 请求拼接了大量参数
415
Unsupported Media Type
不支持的媒体类型
发 JSON 但接口只接受 XML
429
Too Many Requests
请求过于频繁(限流)
API 速率限制触发
451
Unavailable For Legal Reasons
因法律原因不可访问
版权、地区封锁
401 vs 403 核心区别
401:未认证。服务器说:“你是谁?请先证明身份。” → 可重新登录后重试。
403:已认证但无权。服务器说:“我知道你是谁,但你不被允许进入。” → 即使重试也无用(除非改权限)。

5. 5xx 服务器错误

状态码
短语
含义
典型场景
500
Internal Server Error
通用服务器内部错误
代码抛出未捕获的异常、空指针、数据库连接失败
501
Not Implemented
服务器不支持请求的功能
请求了一个未实现的 HTTP 方法
502
Bad Gateway
网关/代理
从上游收到无效响应
反向代理无法连接到后端服务
503
Service Unavailable
服务器暂时不可用(过载或停机)
流量暴增、正在维护、容器未就绪
504
Gateway Timeout
网关/代理
等待上游响应超时
后端服务响应太慢,代理等不及了
505
HTTP Version Not Supported
HTTP 版本不支持
客户端用了 HTTP/2,服务器只支持 1.1
502 vs 504
502:上游返回了错误响应(如连接拒绝、协议错误)。
504:上游根本没响应(超时)。

三、完整状态码快速参考表(常用部分)

状态码
短语
简要场景
200
OK
正常
201
Created
创建成功
204
No Content
删除成功或无返回体
301
Moved Permanently
永久跳转
302
Found
临时跳转
304
Not Modified
使用缓存
400
Bad Request
请求参数错误
401
Unauthorized
未登录
403
Forbidden
无权限
404
Not Found
资源不存在
405
Method Not Allowed
方法不允许
429
Too Many Requests
频率超限
500
Internal Server Error
服务器代码报错
502
Bad Gateway
网关到后端出错
503
Service Unavailable
服务不可用(过载/维护)
504
Gateway Timeout
网关超时

四、小技巧与易混淆点总结

  • 4xx:客户端请求有问题 → 改完代码或参数就能好。
  • 5xx:服务器有问题 → 一般用户无法解决,需要运维或开发介入。
  • 304 不是错误,是缓存有效。
  • 302 与 307:307 更严格,不会改变请求方法(例如 POST 重定向后仍然是 POST)。
  • 403 比 401 更“绝”,认证后也不行。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐