HTTP状态码是服务器在响应请求的时候, 返回的那三位数字, 它用来告诉客户端, 这个请求的处理结果到底是怎么样子的, 对于开发者来说, 还有运维人员以及站长而言, 快速的, 准确的, 去理解每一个状态码的具体含义,就是排查线上那些问题的第一步HTTP状态码查询工具, 我们本文提供了一份具有结构化的状态码的速查指南, 还提供了排查指南, 这是为了帮助你在最短的时间之内, 就把那个问题给定位出来。
状态码五大分类
1xx(信息类): 发送的请求已经被接收, 但是还在处理过程中, 并没有完成, 客户端需要继续等待结果。
2xx(成功类)的意思是, 请求得到了成功的处理结果。在实际情况里面, 最经常看见的代码是200(OK)。还有另一个比较常见的代码是204(No Content)。
3xx(重定向类)的意思是, 这种情况要求客户端必须进行额外的操作或者步骤, 常见的具体例子包括301状态码, 这代表永久重定向, 以及302状态码,这代表临时重定向。
4xx(客户端错误)指的是请求本身存在错误HTTP状态码查询工具, 比如404(Not Found), 还有403(Forbidden)这种情况。
5xx(服务器错误): 当服务器在处理请求的时候, 会发生内部的错误, 比如会碰到500(Internal Server Error), 又或者会碰到502(Bad Gateway)。
高频状态码速查
按状态码快速排查
遇到4xx错误:
1. 需要去检查一下发出的那个请求里面的网址是不是写错了, 还有那些跟在后面的参数, 格式对不对。
2. 确认认证凭证, 也就是Token或者是Cookie它们是不是有效的。
3. 要去查看那个服务器的访问日志, 然后呢, 得去找到那个具体出现错误的路径在哪里。
遇到5xx错误:
1. 你需要去查看那个应用的日志, 这里面包括标准输出也就是stdout以及错误日这些内容, 目的是通过这样做的办法来定位出现异常的具体堆栈信息。
2. 需要检查一下上游的依赖情况, 看看数据库是不是正常的, 缓存是不是正常的, 第三方API是不是正常的。
3. 确认服务器资源的情况, 这些资源包括CPU、内存以及连接池在内, 是否存在被耗尽的可能。
4. 如果出现的是 502 或者 504, 你需要重点关注反向代理和后端服务之间的通信链路, 检查它们之间的联系是否正常。
使用查询工具的建议
在实地的调查和查找过程中, 建议大家配合使用在线的超文本传输协议状态码查询工具来进行。大家要访问由gz88.cn这个网址所提供的关于状态码的查询页面, 并且在页面上输入任意三个数字, 就可以在一瞬间获得这个状态码的标准定义是什么, 还有常见的触发场景有哪些, 以及对应的排查步骤应该是什么。
可以把该工具的链接收藏成为书签, 等到需要排查的时候一键进行调用, 这样是可以显著地缩短定位所需要花费的时间的。同时建议呢,就是在团队内部去维护一份叫做“本项目状态码速查表”的东西龙南市就业服务平台, 然后把业务这边特有的那些自定义的状态码也纳入进去, 以此来避免和标准的代码相混淆。
权威参考
IETF RFC 9110(HTTP Semantics)它是关于HTTP语义的一份很有权威性的定义文档, 所有那些标准化状态码到底是什么意思, 以及在什么样的场景下去使用它们, 都必须要参照这份文档来进行判断。
一旦线上环境出现了不认识的错误状态码, 或者是程序的正常反应和你原本想的不一样, 那就先去查查像Nginx、Apache或者IIS这些Web服务商发的官方说明文件。查完了之后, 还得去看一下应用层面的那些运行记录, 然后拿这两个信息对一对, 看看哪里出了问题。
一般只要这么做的话, 十分钟左右就能搞清状况是什么。


