HTTP状态码全指南

一、状态码分类逻辑

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​​:支持断点续传的核心状态码

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注