一、状态码分类逻辑
HTTP状态码按首位数字分为5类,构成Web通信的「响应语言」:
- 1xx:信息性状态(协议处理中)
- 2xx:成功状态(请求已达成)
- 3xx:重定向状态(资源位置变更)
- 4xx:客户端错误(请求不合法)
- 5xx:服务端错误(服务器处理失败)
这种分类方式让开发者能快速定位请求问题的大致方向,极大提升调试效率。
二、全量状态码速查表
1xx Informational(信息响应)
状态码 |
名称 |
典型场景 |
补充说明 |
100 |
Continue |
客户端应继续发送请求体 |
常用于大文件上传,先确认服务器接收意向 |
101 |
Switching Protocols |
服务器同意升级协议(如WebSocket) |
需在请求头中指定Upgrade 字段 |
102 |
Processing |
服务器正在处理但未完成 |
多用于WebDAV协议下的复杂操作 |
2xx Success(成功响应)
状态码 |
名称 |
关键特性 |
常见应用场景 |
200 |
OK |
标准成功响应 |
GET请求成功返回数据 |
201 |
Created |
资源创建成功(POST返回新URL) |
接口创建用户、商品等资源时使用 |
202 |
Accepted |
请求已接收但未处理完 |
异步任务提交(如文件上传排队) |
204 |
No Content |
响应体为空(如DELETE成功) |
删除资源后,减少不必要的数据传输 |
3xx Redirection(重定向)
状态码 |
名称 |
缓存行为 |
方法保留规则 |
适用场景 |
301 |
Moved Permanently |
永久缓存 |
GET可能变HEAD |
网站域名更换、页面永久迁移 |
302 |
Found |
临时缓存 |
方法可能改变 |
登录成功后跳转首页 |
307 |
Temporary Redirect |
不缓存 |
强制保留原始方法 |
临时维护页面跳转 |
308 |
Permanent Redirect |
永久缓存 |
强制保留原始方法 |
API接口版本永久变更 |
4xx Client Error(客户端错误)
状态码 |
名称 |
高频触发场景 |
修复建议 |
400 |
Bad Request |
请求语法错误 |
检查参数格式、请求头完整性 |
401 |
Unauthorized |
未提供有效身份凭证 |
添加认证信息(如Token、Basic Auth) |
403 |
Forbidden |
权限不足(如访问私有文件) |
确认用户角色权限配置 |
404 |
Not Found |
资源不存在 |
检查URL路径或资源删除逻辑 |
429 |
Too Many Requests |
触发速率限制 |
调整请求频率或申请更高配额 |
5xx Server Error(服务端错误)
状态码 |
名称 |
故障类型 |
排查方向 |
500 |
Internal Server Error |
未分类的服务器错误 |
检查服务器日志、代码异常捕获 |
502 |
Bad Gateway |
上游服务器无响应 |
确认网关配置、后端服务健康状态 |
503 |
Service Unavailable |
主动停机维护/过载 |
查看维护公告、扩容服务器资源 |
504 |
Gateway Timeout |
上游服务器响应超时 |
优化网络配置、增加超时重试机制 |
三、关键场景实战指南
1. SEO优化组合拳
- 301+308:永久迁移时保留链接权重
- 429+Retry-After:应对爬虫时友好限流
2. API设计黄金法则
GET /api/users/1 HTTP/1.1
-> 200 OK(成功)
-> 404 Not Found(资源不存在)
-> 410 Gone(资源已删除且无新地址)
3. 错误处理最佳实践
- 4xx错误必须返回清晰错误详情(如JSON Body)
- 5xx错误应记录完整日志链(Request-ID追踪)
四、冷知识彩蛋
418 I’m a teapot:源自HTTP愚人节RFC(真实存在于某些库中)
206 Partial Content:支持断点续传的核心状态码
发表回复