797 字
4 分钟
常见 HTTP 状态码与网站故障排查
常见的 HTTP 状态码有哪些
常见 HTTP 状态码分为五类:1xx 表示信息响应,2xx 表示请求成功,3xx 表示重定向,4xx 表示客户端错误,5xx 表示服务器错误

| 状态码 | 含义 | 举例 |
|---|---|---|
| 200 | 请求成功 | 网页数据正常返回 |
| 301 / 302 | 重定向 | 网站更换地址,跳转到新页面 |
| 304 | 使用缓存 | 资源没变化,浏览器使用本地缓存 |
| 401 / 403 | 认证失败 / 禁止访问 | 未通过身份认证 / 没有访问权限 |
| 404 | 资源不存在 | 访问的网页找不到 |
| 500 | 服务器内部错误 | 服务器程序运行异常 |
前端请求接口返回 200 但业务逻辑失败了,这种设计合理吗?
HTTP 状态码本意是描述 HTTP 协议层面的成功或失败,和业务逻辑成功不是一回事
很多团队选择“只要服务器正常处理了请求就返回 200,业务成功失败用响应体里的 code 字段表示”,这样前端统一处理方便
为什么有时候明明网站挂了,访问却返回 200?
- 大概率是前面有一层 CDN 或反向代理,源站挂了但 CDN 缓存还在,CDN 直接把缓存返回给用户
- 配置了自定义错误页,Nginx 把 502 转成了 200 加一个友好的错误页面
- 还有一种是负载均衡健康检查有延迟,流量还在往已经挂掉的节点打
用户无法访问某网站,如何排查
- 检查网络连接:确保设备已经连接到互联网。可以通过访问其他网站或使用网络诊断工具来验证。
- 检查网站地址:确保输入的是正确的网址,没有拼写错误,且URL协议(http或https)正确。
- 检查DNS配置:使用 nslookup 或 ping 命令检查域名解析是否正常,或者尝试更换DNS服务器,如使用Google的8.8.8.8。
- 检查本地防火墙和路由器设置:确保没有被本地防火墙或路由器的规则阻止对该网站的访问。
- 检查浏览器问题:尝试使用不同的浏览器访问网站,以排除浏览器相关的问题。
- 检查网站状态:访问状态监测网站(如DownDetector)查看目标网站是否在大范围内出现故障。
- 检查代理和VPN:确保没有错误配置代理或VPN,尝试关闭代理或VPN再访问网站。
- 联系ISP:如果仍无法访问,可以联系互联网服务提供商以确认是否有针对该网站的访问限制或其他问题。
使用 Nginx 出现 502 错误的可能原因有哪些?
- 后端服务器(如 PHP-FPM、Node.js、Python 等)未运行或崩溃。
- Nginx 配置文件中的 upstream 配置错误,比如错误的 IP 地址或端口。
- 后端服务器响应时间过长,超出 Nginx 的 timeout 设置。
- 后端服务器的资源不足,比如内存或 CPU 使用过高。
- 集群中的某些服务器宕机或不可达。
常见 HTTP 状态码与网站故障排查
https://blog.xqcherry.top/posts/interview/network/http-status-codes-and-troubleshooting/ 目录