HTTP 错误排查实战指南

快速诊断和解决常见 HTTP 错误问题

快速诊断

选择你遇到的错误代码,获取专属排查方案

🔍 HTTP错误排查通用流程

flowchart TD A[收到HTTP错误响应] --> B{状态码分类} B -->|4xx 客户端| C[检查请求] B -->|5xx 服务器| D[检查服务端] B -->|3xx 重定向| E[跟踪重定向链] B -->|2xx 成功| F[✅ 请求成功] C --> C1[检查URL是否正确] C1 --> C2[检查请求头/参数] C2 --> C3[检查认证信息] C3 --> C4{问题解决?} C4 -->|是| F C4 -->|否| D D --> D1[检查服务器日志] D1 --> D2[检查服务状态] D2 --> D3[检查资源限制] D3 --> D4{问题解决?} D4 -->|是| F D4 -->|否| G[寻求进一步支持] E --> E1[检查重定向次数] E1 --> E2[验证最终资源] E2 --> E3{资源有效?} E3 -->|是| F E3 -->|否| C

400Bad Request - 错误请求

服务器无法理解客户端发送的请求,通常是因为请求语法错误或参数问题

️ 常见触发场景

  • 请求 URL 包含非法字符或格式错误
  • 请求头过大(超过服务器限制)
  • 请求体 JSON 格式不正确
  • 缺少必需的请求参数
  • Cookie 损坏或格式错误

> 排查步骤

1
检查请求 URL

确认 URL 编码正确,特殊字符已正确转义(如空格应为%20)

2
验证请求头

检查请求头大小,移除不必要的头信息;确认 Content-Type 正确

3
检查请求体

使用 JSON 验证工具检查请求体格式;确认必需参数已提供

4
清除 Cookie 重试

清除浏览器 Cookie 或使用无痕模式测试,排除 Cookie 损坏问题

> 解决方案

  • 使用 HTTP 请求构建器 重新构建请求
  • 检查服务器日志获取详细错误信息
  • 使用 curl -v 命令查看完整请求/响应
  • 确认 API 文档中的参数要求

401Unauthorized - 未授权

请求需要用户认证,客户端未提供有效凭证或凭证已过期

️ 常见触发场景

  • 未登录访问需要认证的接口
  • Token 过期或无效
  • API Key 错误或已撤销
  • Basic Auth 凭证错误
  • JWT 签名验证失败

> 排查步骤

1
确认认证状态

检查是否已登录;确认 Token 是否在有效期内

2
检查 Authorization 头

确认格式正确(如 Bearer token);确认 Token 未损坏

3
验证凭证

重新获取 Token;检查 API Key 是否有效;确认用户名密码正确

> 解决方案

  • 重新登录获取新 Token
  • 使用 HTTP 请求构建器 测试认证请求
  • 检查服务器认证配置(CORS、认证中间件)
  • 实现 Token 自动刷新机制

403Forbidden - 禁止访问

服务器理解请求但拒绝执行,通常是因为权限不足或资源被保护

️ 常见触发场景

  • 访问没有权限的资源
  • IP 地址被服务器封禁
  • 目录浏览被禁止
  • 文件权限设置错误(Linux chmod)
  • 防火墙或 WAF 拦截

> 排查步骤

1
检查用户权限

确认账号有访问该资源的权限;检查角色配置

2
检查文件权限

Linux 服务器使用 ls -l 检查文件权限;确认 web 用户有读取权限

3
检查服务器配置

检查 nginx/Apache 配置;确认没有 IP 限制规则

> 解决方案

  • 联系管理员获取访问权限
  • 检查并修复文件权限(chmod 644 / chown)
  • 检查服务器访问控制配置
  • 使用 HTTP 请求构建器 测试不同权限请求

404Not Found - 资源未找到

服务器无法找到请求的资源,URL 路径不存在或资源已被删除

️ 常见触发场景

  • URL 拼写错误或路径不正确
  • 资源已被删除或移动
  • 服务器配置错误(rewrite 规则)
  • 静态文件路径错误
  • API 端点不存在或版本已废弃

> 排查步骤

1
检查 URL 拼写

仔细核对 URL 路径;注意大小写(Linux 区分大小写)

2
检查文件是否存在

在服务器上确认文件存在;检查文件路径是否正确

3
检查服务器配置

检查 nginx/Apache 的 location 配置;确认 rewrite 规则正确

4
检查路由配置

前端路由检查路由表;后端路由检查控制器映射

> 解决方案

  • 修正 URL 路径拼写错误
  • 配置 301 重定向到正确路径
  • 创建自定义 404 页面引导用户
  • 使用 HTTP 状态码查询工具 了解更多
  • 检查并修复服务器 rewrite 规则

405Method Not Allowed - 方法不允许

请求方法(GET/POST/PUT 等)不被该资源支持

️ 常见触发场景

  • 对只读接口发送 POST 请求
  • API 不支持该 HTTP 方法
  • 表单提交方法配置错误
  • RESTful API 方法使用错误

> 排查步骤

1
检查 API 文档

确认该端点支持的 HTTP 方法

2
检查请求方法

确认表单 method 属性;检查 AJAX 请求配置

3
检查服务器配置

确认服务器允许该 HTTP 方法

> 解决方案

  • 修改请求方法为 API 支持的方法
  • 更新表单或 AJAX 配置
  • 检查服务器 Allow 头确认支持的方法

429Too Many Requests - 请求过多

客户端在给定时间内发送了过多请求,触发了速率限制

️ 常见触发场景

  • API 调用频率超过限制
  • 爬虫请求过快
  • 代码中的循环请求未加限制
  • DDoS 攻击或异常流量

> 排查步骤

1
检查 Retry-After 头

服务器会返回建议的重试时间

2
分析请求频率

检查代码中的请求逻辑;确认是否有不必要的重复请求

3
检查 API 限流策略

查看 API 文档了解限流规则

> 解决方案

  • 实现请求节流(throttling)
  • 添加指数退避重试机制
  • 使用请求队列控制并发
  • 申请更高的 API 配额
  • 使用 HTTP 请求构建器 测试限流行为

500Internal Server Error - 服务器内部错误

服务器遇到意外情况,无法完成请求,通常是服务端代码或配置问题

️ 常见触发场景

  • 后端代码异常(未捕获的异常)
  • 数据库连接失败
  • 服务器资源耗尽(内存、磁盘)
  • 配置文件语法错误
  • 第三方服务调用失败

> 排查步骤

1
检查服务器日志

查看 error.log 获取详细错误信息;定位异常堆栈

2
检查资源使用

检查内存、磁盘、CPU 使用情况;确认未超限

3
检查数据库连接

确认数据库服务正常;检查连接池配置

4
检查配置文件

验证配置文件语法;确认环境变量正确

> 解决方案

  • 修复代码中的异常和错误
  • 重启相关服务(应用、数据库)
  • 增加服务器资源或优化代码
  • 使用 网络命令参考 进行诊断
  • 启用详细错误日志便于调试

502Bad Gateway - 网关错误

作为网关或代理的服务器从上游服务器收到无效响应

️ 常见触发场景

  • 后端服务(如 Node.js、PHP-FPM)崩溃
  • 反向代理配置错误
  • 上游服务器超时
  • 防火墙阻止代理连接

> 排查步骤

1
检查后端服务状态

确认应用服务正在运行;检查进程状态

2
检查代理配置

验证 nginx/Apache 反向代理配置;确认 upstream 地址正确

3
检查网络连接

确认代理服务器能访问后端;检查防火墙规则

> 解决方案

  • 重启后端服务
  • 修复反向代理配置
  • 增加代理超时时间
  • 检查并开放必要的防火墙端口

503Service Unavailable - 服务不可用

服务器暂时无法处理请求,通常是因为过载或维护

️ 常见触发场景

  • 服务器过载(请求量过大)
  • 计划内维护
  • 服务正在重启
  • 连接池耗尽
  • 依赖服务不可用

> 排查步骤

1
检查服务器负载

使用 top/htop 查看负载;检查并发连接数

2
检查服务状态

确认应用服务正在运行;检查健康检查端点

3
检查依赖服务

确认数据库、缓存等依赖服务正常

> 解决方案

  • 等待服务恢复(如果是维护)
  • 增加服务器资源或扩容
  • 优化代码提升性能
  • 实现负载均衡分散流量
  • 使用 网络速度测试 检查连接质量

504Gateway Timeout - 网关超时

网关或代理服务器在等待上游服务器响应时超时

️ 常见触发场景

  • 后端处理时间过长
  • 数据库查询超时
  • 外部 API 响应缓慢
  • 网络延迟过高
  • 代理超时设置过短

> 排查步骤

1
检查后端性能

分析慢查询日志;检查代码执行时间

2
检查超时配置

查看 proxy_read_timeout 等配置;确认设置合理

3
检查外部依赖

测试外部 API 响应时间;检查网络连接

> 解决方案

  • 优化慢查询和代码性能
  • 增加代理超时时间
  • 实现异步处理和超时控制
  • 使用缓存减少后端压力
  • 添加熔断机制防止级联失败