HTTP 状态码体系 (AI)

一、总览:状态码的 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 更"绝",认证后也不行。
相关推荐
北城笑笑1 分钟前
Vue 109 ,从零搭建 Vue3 + Electron 工程:生态、安全桥接与打包选型( Vue + Electron )
前端·javascript·vue.js·安全·electron·vue
草莓熊Lotso1 小时前
【C++ 基于微服务的即时通讯系统】文件存储子服务实战:UUID生成、文件IO封装与全接口单元测试
开发语言·网络·数据库·c++·微服务·架构·单元测试
wuyk5552 小时前
Spider-第03讲-HTTP速通与读懂响应
网络·爬虫·网络协议·http
默|笙12 小时前
【Linux网络】网络层协议 IP(1)理解报头、网段划分
linux·网络·tcp/ip
山东科恩光电13 小时前
安全触边在协作机器人工作站防碰撞防护中的安装方案与性能优化
安全
梦到啥说啥19 小时前
Linux网络编程:TCP网络协议
网络·网络协议·tcp/ip
Shanks.1 天前
2026 远程控制软件实测:ToDesk / 向日葵 / RustDesk / TeamViewer 在跨城与弱网下的真实差距
网络·远程工作·软件需求
Jeremy_WW1 天前
802.3协议解读 06:117章节 RS 和 200GMII / 400GMII I
网络·网络协议·信息与通信·光模块·802.3协议
坤坤子吖1 天前
Linux网络编程:自定义应用层协议与 JSON 序列化
linux·服务器·网络·c++·笔记·json
顧棟1 天前
INFINI Gateway 服务器端口重用(SO_REUSEPORT)实现与分析
网络·gateway