HTTP的状态码呢, 它是服务器给客户端的那个请求的响应标识, 这个标志是由三个数字组成的, 然后它被分成了五类, 第一个是1xx也就是信息, 第二个是2xx也就是成功, 第三个是3xx也就是重定向, 第四个是4xx也就是客户端的错误, 第五个是5xx也就是服务端的错误, 本文呢会提供一个高频码的速查表HTTP状态码查询工具,并且还会提供多种在线查询的这些方法, 这样做的目的就是为了帮助那些开发的人员以及运维的人员能够很快的来定位遇到的问题。

状态码分类说明

1xx(100–101)指的是, 协议正在处理过程中, 这是在提示客户端, 客户端应当继续发送请求。

2xx(200–299), 请求是成功的, 服务器已经进行了正确的处理。

这属于3xx这个代码范围里的内容就是处在300到399这个区间段, 需要让客户端去再做一步相关的操作, 最常见到的情形是出现各种不同类型的页面跳转或者重定向。

HTTP状态码查询工具:全码含义在线速查(图1)

在范围400到499这个区间的, 也就是常说的4xx这类代码情况下面, 它表示的是客户端那边发出的请求有错误存在, 导致服务器没办法执行对应的操作。

这个分类指的是5xx, 也就是从500一直到599的这些状态码情况。它的意思是服务器方面出现了内部故障的问题, 导致请求没有办法被完成处理。

高频状态码速查表

状态码 含义 典型场景
200 成功 请求正常返回数据
301 永久重定向 域名迁移、URL 永久变更
302 临时重定向 登录跳转、临时维护页
304 未修改 浏览器缓存命中HTTP状态码查询工具,无需重新下载
400 请求参数错误 URL 格式异常、必填参数缺失
401 未认证 未携带凭证或 Token 过期
403 禁止访问 资源存在但当前身份无权限
404 未找到 路径错误、资源已删除
429 请求过多 触发接口限流或封禁策略
500 内部错误 应用代码抛出未捕获异常
502 网关错误 上游服务无响应或连接被拒
503 服务不可用 服务器维护、过载或容量不足
504 网关超时 上游响应超时,未在规定时间内返回

在线查询方法与工具

HTTP状态码查询工具:全码含义在线速查(图2)

1. 使用浏览器直接查询: 操作的时候是在搜索引擎里面去输入, 比如说“HTTP status code 404”这类的关键词, 然后就可以得到这个代码的标准意思以及对它的处理办法的建议;还有啊, MDN Web Docs 里面的 HTTP Reference 那个页面, 里面是收录了完整的码表的以及字段的说明的。

2. 开发者工具: Chrome DevTools 里面的 Network 面板。它能够让你实时地查看每一个请求所持有的状态码。它也能让你实时地查看响应头信息。

它还能让你实时地了解耗时的情况。Fiddler、Postman、Charles 这些抓包调试工具也都是同样的支持方式。它们同样是支持按照状态码来进行筛选的。

3. 服务器日志: 你可以使用命令, 比如把 grep" 404" access.log 写进去, 来运行访问日志的分析工作, 访问日志的获取可以通过 Nginx, Apache 来完成, 对状态码出现的频率做个统计就行啦, 这样就能快速发现线上出问题的地方了。

高频疑问解答

HTTP状态码查询工具:全码含义在线速查(图3)

关于那个404与403的区别的情况, 大家要清楚这一点, 那就是, 404 这个状态码所代表的含义是请求的资源不存在, 而 403 这个状态码所代表的含义则是该资源实际上是存在的, 但是当前的用户没有拥有访问它的权限。

在面对这样的问题的时候, 需要进行排查, 大家要先去确认一下对应的 URL 路径是不是正确的, 接着再去检查一下鉴权的配置。

做选择的时候, 关于301与302的选择, 如果是永久性变更网址链接, 那就去用 301。搜索引擎会把这个操作看作是权重的传递, 会把原来那个地址的权重值给传过去。如果是临时的跳转, 比如说有的活动页面下线了这样的情况。那就去选用 302, 这样做的目的是为了防止缓存被污染掉。

500与502的排查路径: 针对 500 错误, 大家要优先去查看应用日志里面出现的那些异常的堆栈信息。对于 502 错误则需要优先去检查上游服务, 比如 PHP-FPM、后端容器或者是微服务实例, 看看它们是不是还活着, 还有端口是不是可以访问得了。

如果你想要去查一下, 那些在数字1xx到5xx范围内的全部状态码的完整定义的话, 你可以去访问一下MDN, 也就是developer.mozilla.org/en-US/docs/Web/HTTP/Status这个网站, 或者直接去看一下IETF RFC 9110的那个原文。