Skip to content

HTTP 状态码

HTTP 状态码是服务器对客户端请求的响应标识,由三位数字组成,第一位数字定义了响应的类别。

状态码分类

  • 1xx:信息性状态码,表示请求已接收,继续处理
  • 2xx:成功状态码,表示请求已成功被服务器接收、理解并接受
  • 3xx:重定向状态码,表示需要客户端采取进一步操作才能完成请求
  • 4xx:客户端错误状态码,表示请求包含语法错误或无法完成请求
  • 5xx:服务器错误状态码,表示服务器在处理请求的过程中发生了错误

3XX 重定向状态码

重定向状态码表示客户端需要采取进一步的操作才能完成请求,通常用于 URL 跳转。

完整的 3XX 状态码对比

状态码名称含义是否缓存请求方法浏览器行为使用场景
301Moved Permanently永久重定向✅ 缓存可能改变为 GET首次跳转后缓存规则,下次直接访问新地址HTTP→HTTPS,旧域名→新域名
302Found临时重定向❌ 不缓存可能改变为 GET每次都先请求原地址,再跳转到新地址临时维护页面,A/B 测试
303See Other查看其他位置❌ 不缓存强制改为 GET强制使用 GET 请求新地址,防止表单重复提交POST 后重定向到结果页(PRG 模式)
304Not Modified未修改✅ 使用缓存保持原方法直接使用本地缓存,不重新下载资源浏览器缓存验证
307Temporary Redirect临时重定向❌ 不缓存严格保持原方法每次都先请求原地址,保持原请求方法跳转临时重定向 POST 请求
308Permanent Redirect永久重定向✅ 缓存严格保持原方法首次跳转后缓存规则,保持原请求方法访问新地址HTTP→HTTPS(保持 POST)

4XX 客户端错误状态码

4xx 表示请求端存在问题:可能是参数不合法、缺少权限、资源不存在、触发限流等。对 API 调用方来说,4xx 通常意味着“修请求”而不是“重试”。

常见的 4XX 状态码

状态码名称含义典型场景调用方建议
400Bad Request请求格式或参数错误JSON 解析失败、参数类型不对、缺少必填字段修正请求后再发;可在前端做校验
401Unauthorized未认证(缺少/无效凭证)Token 过期、未登录访问受保护资源重新登录/刷新 Token;不要盲目重试
403Forbidden已认证但无权限RBAC/ACL 拒绝、资源归属不匹配检查权限配置;提示无权限
404Not Found资源不存在或路由不存在URL 错误、资源已删除、ID 不存在检查路径与 ID;通常不重试
405Method Not Allowed方法不被允许对只支持 GET 的资源发 POST改用允许的方法
409Conflict冲突(状态/版本不一致)并发更新冲突、重复创建、幂等键冲突结合业务做重试/提示;必要时先刷新状态
410Gone资源已永久移除旧链接对应资源已下线更新引用;不应重试
413Payload Too Large请求体过大上传文件/请求体超限压缩/分片上传;调整限制配置
415Unsupported Media Type不支持的媒体类型Content-Type 不正确(应为 application/json 等)修正 Content-Type 与编码方式
422Unprocessable Content语义校验失败字段格式合法但业务规则不满足根据错误信息修正数据
429Too Many Requests触发限流短时间请求过多按 Retry-After/退避策略重试

401 与 403 的区别

  • 401:你是谁还不确定(缺少或无效的认证信息)
  • 403:你是谁确定了,但你不能做(权限不足)

404 与 410 的区别

  • 404:找不到(可能是路径写错,也可能是资源不存在)
  • 410:明确告知资源“曾经存在但已永久移除”(适合迁移/下线场景)

5XX 服务器错误状态码

5xx 表示服务端处理请求时发生错误:可能是代码异常、依赖服务不可用、网关转发失败等。对调用方来说,5xx 往往意味着“可以重试”,但应配合超时、熔断、退避和幂等设计。

常见的 5XX 状态码

状态码名称含义常见原因调用方建议
500Internal Server Error服务端未知错误未捕获异常、错误配置、代码 bug可重试少量次数;同时上报/告警
501Not Implemented服务器不支持该能力接口未实现、方法不支持停止调用;检查版本与文档
502Bad Gateway网关/代理收到上游无效响应上游服务重启、容器未就绪、反向代理转发失败短暂重试;关注上游健康与网关配置
503Service Unavailable服务不可用(临时)维护模式、过载、实例全下线按 Retry-After 重试;必要时降级
504Gateway Timeout网关等待上游超时上游响应慢、网络问题、超时配置过短退避重试;排查超时链路与慢查询

502 与 504 的区别

  • 502:上游“没给出有效响应”(连接不上、响应格式不对等)
  • 504:上游“给得太慢”(网关等不到结果超时)

Released under the MIT License.