15
覆盖错误类型
4xx/5xx
错误分类
60+
排查步骤
10+
相关工具
📊 HTTP错误分类速查
flowchart TD
A[HTTP响应] --> B{首位数字}
B -->|2| OK[200 OK
成功] B -->|3| Redir[3xx
重定向] B -->|4| Client[4xx
客户端错误] B -->|5| Server[5xx
服务器错误] Client --> C1[400 语法错误] Client --> C2[401 未认证] Client --> C3[403 禁止访问] Client --> C4[404 未找到] Client --> C5[429 请求过多] Server --> S1[500 服务器错误] Server --> S2[502 网关错误] Server --> S3[503 服务不可用] Server --> S4[504 网关超时]
成功] B -->|3| Redir[3xx
重定向] B -->|4| Client[4xx
客户端错误] B -->|5| Server[5xx
服务器错误] Client --> C1[400 语法错误] Client --> C2[401 未认证] Client --> C3[403 禁止访问] Client --> C4[404 未找到] Client --> C5[429 请求过多] Server --> S1[500 服务器错误] Server --> S2[502 网关错误] Server --> S3[503 服务不可用] Server --> S4[504 网关超时]
400
Bad Request - 错误请求
错误含义
- 服务器无法理解请求,因为语法有误
- 请求包含无效的参数或格式
常见原因
- URL 包含非法字符
- 请求头格式错误
- 请求体 JSON 格式不正确
- Cookie 损坏或过大
- 缺少必需的请求参数
排查步骤
- 检查 URL 是否正确编码(特殊字符需 URL 编码)
- 使用浏览器开发者工具查看请求头
- 验证请求体 JSON 格式(使用 JSON 验证工具)
- 清除浏览器 Cookie 后重试
- 检查 API 文档确认必需参数
> 解决方案
- 修正 URL 格式,确保特殊字符正确编码
- 使用工具验证 JSON 格式
- 清除缓存和 Cookie
- 参考 API 文档重新构造请求
401
Unauthorized - 未授权
错误含义
- 请求需要用户认证
- 提供的认证信息无效或已过期
常见原因
- 未提供认证令牌(Token)
- Token 已过期
- Token 格式错误
- 用户名或密码错误
- 认证方式不匹配(如需要 Bearer 却用了 Basic)
排查步骤
- 检查请求头是否包含 Authorization 字段
- 验证 Token 格式是否正确(Bearer xxx)
- 检查 Token 是否过期
- 确认认证方式(Basic/Bearer/Digest)
- 查看服务器认证日志
> 解决方案
- 重新登录获取新 Token
- 检查 Authorization 头格式
- 实现 Token 自动刷新机制
- 确认 API 要求的认证方式
403
Forbidden - 禁止访问
错误含义
- 服务器理解请求但拒绝授权
- 用户已认证但没有访问权限
常见原因
- IP 地址被服务器封禁
- 用户角色权限不足
- 目录浏览被禁用
- 文件权限设置错误(chmod)
- .htaccess 或 nginx 配置限制
- CORS 跨域限制
排查步骤
- 检查用户角色和权限配置
- 查看服务器错误日志
- 验证文件/目录权限(Linux: ls -la)
- 检查 nginx/Apache 配置
- 测试不同 IP 地址访问
- 检查 CORS 配置
> 解决方案
- 联系管理员提升权限
- 修正文件权限(通常 755 目录,644 文件)
- 检查并修正 Web 服务器配置
- 配置正确的 CORS 策略
404
Not Found - 资源未找到
错误含义
- 服务器找不到请求的资源
- URL 路径不存在
常见原因
- URL 拼写错误
- 资源已被删除或移动
- 大小写敏感(Linux 服务器)
- 缺少 index.html 索引文件
- Rewrite 规则配置错误
- 部署路径不正确
排查步骤
- 仔细检查 URL 拼写
- 确认文件大小写是否正确
- 检查目录是否存在 index.html
- 查看服务器访问日志
- 验证 Rewrite 规则(.htaccess/nginx.conf)
- 确认部署路径配置
> 解决方案
- 修正 URL 路径
- 创建缺失的索引文件
- 配置 301 重定向到正确路径
- 添加自定义 404 页面提升体验
- 修正服务器 Rewrite 规则
405
Method Not Allowed - 方法不允许
错误含义
- 请求方法不被该资源支持
- 如用 POST 访问只支持 GET 的接口
常见原因
- 使用了错误的 HTTP 方法
- API 端点未实现该方法
- 服务器配置限制了方法
- 表单 method 属性设置错误
排查步骤
- 查看 API 文档确认支持的方法
- 检查响应头 Allow 字段
- 验证表单 method 属性
- 检查服务器配置限制
> 解决方案
- 使用正确的 HTTP 方法
- 修改表单或 AJAX 请求方法
- 联系 API 提供方确认方法
- 修正服务器配置
408
Request Timeout - 请求超时
错误含义
- 服务器等待请求超时
- 客户端发送请求太慢
常见原因
- 网络连接不稳定
- 请求体过大上传太慢
- 服务器超时设置过短
- 客户端处理缓慢
- 网络延迟过高
排查步骤
- 测试网络连接质量
- 检查请求体大小
- 查看服务器超时配置
- 使用工具测试网络延迟
- 检查服务器负载情况
> 解决方案
- 优化网络环境
- 压缩请求数据
- 增加服务器超时时间
- 实现请求重试机制
- 使用 CDN 加速
429
Too Many Requests - 请求过多
错误含义
- 用户在给定时间内发送了太多请求
- 触发了速率限制(Rate Limiting)
常见原因
- API 调用频率过高
- 爬虫请求过于频繁
- 未遵守 API 限流策略
- 共享 IP 被多人使用
排查步骤
- 检查响应头 Retry-After
- 查看 API 限流策略文档
- 统计请求频率
- 确认是否使用共享 IP
> 解决方案
- 降低请求频率
- 实现请求队列和延迟
- 等待 Retry-After 指定时间
- 申请更高限流额度
- 使用多个 IP 轮换
500
Internal Server Error - 服务器内部错误
错误含义
- 服务器遇到意外情况无法完成请求
- 通用的服务器错误响应
常见原因
- 代码逻辑错误(Bug)
- 数据库连接失败
- 内存溢出
- 文件权限问题
- 第三方服务调用失败
- 配置文件错误
排查步骤
- 查看服务器错误日志(最关键)
- 检查应用日志
- 验证数据库连接
- 检查磁盘空间
- 查看内存使用情况
- 回滚最近的代码变更
> 解决方案
- 修复代码 Bug
- 重启应用服务
- 修复数据库连接配置
- 增加服务器资源
- 回滚到稳定版本
502
Bad Gateway - 网关错误
错误含义
- 网关/代理服务器从上游收到无效响应
- 常见于 nginx 反向代理场景
常见原因
- 上游服务(如 Node.js/PHP)崩溃
- 上游服务未启动
- 防火墙阻止代理连接
- 上游响应头过大
- 代理配置错误
排查步骤
- 检查上游服务是否运行
- 查看 nginx 错误日志
- 测试直接访问上游服务
- 检查防火墙规则
- 验证代理配置
> 解决方案
- 重启上游服务
- 修正 nginx 配置(proxy_pass)
- 增加 proxy_buffer_size
- 检查防火墙设置
- 配置健康检查和自动重启
503
Service Unavailable - 服务不可用
错误含义
- 服务器暂时无法处理请求
- 通常因为过载或维护
常见原因
- 服务器过载(请求量过大)
- 计划内维护
- 应用池耗尽
- 数据库连接池耗尽
- 资源限制(CPU/内存)
排查步骤
- 检查服务器负载(top/htop)
- 查看应用日志
- 监控资源使用情况
- 检查数据库连接数
- 查看是否有维护公告
> 解决方案
- 增加服务器资源
- 实施负载均衡
- 优化代码性能
- 增加数据库连接池
- 配置自动扩缩容
504
Gateway Timeout - 网关超时
错误含义
- 网关/代理等待上游响应超时
- 上游服务处理时间过长
常见原因
- 上游服务响应慢
- 数据库查询超时
- 外部 API 调用超时
- 代理超时设置过短
- 死锁或资源竞争
排查步骤
- 检查上游服务响应时间
- 分析慢查询日志
- 查看外部 API 状态
- 检查代理超时配置
- 监控资源竞争情况
> 解决方案
- 优化慢查询
- 增加代理超时时间
- 实现异步处理
- 添加缓存层
- 优化外部 API 调用
501
Not Implemented - 未实现
错误含义
- 服务器不支持请求所需的功能
- 请求方法未被实现
常见原因
- 使用了服务器不支持的 HTTP 方法
- 功能尚未开发完成
- 服务器版本过旧
排查步骤
- 确认服务器支持的方法
- 检查 API 文档
- 查看服务器版本
> 解决方案
- 使用支持的 HTTP 方法
- 升级服务器软件
- 联系服务提供商
505
HTTP Version Not Supported - 版本不支持
错误含义
- 服务器不支持请求使用的 HTTP 协议版本
常见原因
- 使用了过新或过旧的 HTTP 版本
- 服务器配置限制了版本
排查步骤
- 检查请求使用的 HTTP 版本
- 查看服务器支持的版本
> 解决方案
- 使用 HTTP/1.1 或 HTTP/2
- 更新客户端配置
- 升级服务器软件
507
Insufficient Storage - 存储空间不足
错误含义
- 服务器无法存储完成请求所需的数据
- 磁盘空间不足
常见原因
- 磁盘空间已满
- 配额限制
- 日志文件过大
排查步骤
- 检查磁盘空间(df -h)
- 查看日志文件大小
- 检查用户配额
> 解决方案
- 清理磁盘空间
- 扩容磁盘
- 清理日志文件
- 增加配额限制
511
Network Authentication Required - 需要网络认证
错误含义
- 客户端需要先进行网络认证
- 常见于公共 WiFi 的 Captive Portal
常见原因
- 连接了需要登录的公共 WiFi
- 企业网络需要认证
排查步骤
- 打开浏览器查看是否有认证页面
- 检查网络连接状态
> 解决方案
- 完成网络认证登录
- 切换到其他网络
- 联系网络管理员