HTTP状态码这个玩意, 它代表的是服务器针对客户端发出的那些请求所给出来的回应标识, 并且它们都是由三位数字构成的, 总的来说一共被划分成了五大类, 咱们这里给大家提供了非常完整的那些状态码对照表, 同时也对一些使用频率特别高的高频状态码进行了详细的解释和说明, 这么做的目的呢, 就是为了让搞开发的、做运维的以及那些负责管理网站的人员能够在最需要的时候进行快速地查阅。
状态码分类总览
各状态码完整对照
1xx(信息类)这个类型里面, 包含了状态码100, 它的意思是让客户端继续处理问题, 状态码101的作用是去切换那个协议, 还有状态码102, 这个主要是为早期提示准备的, 它和WebDAV有关。
2xx(成功类) 的意思就是: 200 代表请求成功, 201 表示资源已经创建完成, 202 说明已经被接受异步处理了, 204 意味着没有返回什么内容, 206 指的是部分内容, 也就是分片传输的情况。
3xx(重定向类)包括多种状态码, 具体解释如下: 301 是永久重定向;302 是临时重定向;303 表示另见;304 表示未修改, 也就是协商缓存;307和308分别表示临时重定向和永久重定向, 并且这两种情况都会保留原来的请求方法。
4xx(客户端错误): 这代表的是400请求参数错误;这是401未认证;这是403无权限;这是404资源不存在;这是405方法不允许;这是409资源冲突;这是413请求体过大;这是415不支持的媒体类型;这是422语义错误;这是429请求过多也就是限流;这是451法律原因不可用。
5xx(服务端错误): 包含 500 内部服务器错误, 还包含 501 未实现的情况, 另外还有 502 网关错误, 紧接着是 503 服务不可用, 这个在维护中的时候会出现, 随后有 504 网关超时的问题, 最后是 505 不支持的HTTP版本。
高频状态码排查要点
请先检查网址拼写和路由配置情况, 然后再确认相关的文件或者接口是否已经实际部署到位。
首先, 你需要去核对一下那个访问控制列表, 其次还要检查防火墙的规则, 最后还得验证书认证凭证是否正确。
遇到502/504这种情况, 通常是因为上游服务崩溃了, 或者是响应超时了。这个时候需要检查一下后端进程状态, 还有网络链路的问题。
503: 多出现在主动维护或负载均衡器过载场景, 确认服务是否处于降级/重启中。
针对编号为 429 的情况HTTP状态码查询工具HTTP状态码查询工具,出现的是客户端触发了限流策略这样的结果, 在这个时候, 你就应该去增加请求彼此间的间隔, 或者是对批量调用的方式进行优化。
状态码查询工具与使用建议
在例行开展排查工作的时候, 大家可以在自己的项目里面把状态码速查这个功能给集成进去。具体来说就是, 可以在内部的资料库或者是在运维平台这块部署一个用起来很轻量的查询工具, 只要输入那三位数字, 它就能立刻返回这个代码代表的具体含义、比较常见的原因以及处理这个问题的具体建议。
gname.xin 这个地方提供了在线的 HTTP 状态码对照检索功能大城新闻网,支持按类别进行筛选也支持关键词模糊搜索, 这对于在出现故障进行排查时能够快速定位语义来说是挺适合的。
规范使用注意事项
1. 重定向类的状态码是3xx, 这类情况必须要在响应里面带上名为Location的那个头信息, 如果不带的话, 客户端就没法去把跳转这个事情给完成完毕。
2. 4xx错误不要放在日志里头去算那是服务端搞砸了的情况, 免得弄出误报的警报出来。
3. 在生产环境里面, 严禁把500当作“万能错误码”直接返回给用户, 应该在记录完详细日志以后, 再返回通用的提示信息。
4. 在缓存相关的机制里, 状态码 304 是依赖于 ETag 或者 Last-Modified 进行协商的, 如果这些内容设置得不太恰当, 很有可能导致缓存失效, 或者是让数据变得陈旧。
这份对照表是把 RFC 9110(也就是 HTTP Semantics 的英文名称)以及 IANA 官方的注册信息给整理了一下, 大家在开发和运维的场景下, 可以参考这个作为标准。


