🏠 首页 攻略 HTTP状态码实用速查手册:从200到511的开发者生存指南

HTTP状态码实用速查手册:从200到511的开发者生存指南

HTTP状态码是Web开发者的必修课。本文从1xx到5xx全覆盖,详解最常用的30+个状态码含义、常见踩坑和排查思路,附navbox在线速查工具实操指南,前端后端开发者都值得收藏。

你有没有遇到过这种情况:调接口的时候浏览器报了个 418,你以为是服务器出了 Bug,查了半天才发现——等等,418 是「我是茶壶」(I’m a teapot)?谁在正经 API 里埋这种彩蛋?

HTTP 状态码是 Web 开发中最基础也最容易混淆的知识点之一。新手记不住,老手也偶尔翻车。本文把所有状态码按类别拆开揉碎讲清楚,并教你用 navbox 的 HTTP 状态码速查表 快速定位问题,建议收藏备用。

一、分类总览:5 个类别一眼记住

HTTP 状态码按百位数字分成 5 类:

分类范围含义一句话口诀
1xx100-199信息响应服务器说「收到,继续」
2xx200-299成功一切正常
3xx300-399重定向去别处找
4xx400-499客户端错误你发的东西有问题
5xx500-599服务器错误服务器炸了

这个分类是 HTTP 协议规定的通用框架,记不住具体数字没关系,先记住类别。面试官问「4xx 和 5xx 的区别是什么?」——答案很简单:4xx 是你的锅,5xx 是服务器的锅


二、2xx 成功类:开发最喜欢的数字

200 OK — 最幸福的状态码

请求成功,服务器返回了你想要的数据。这是每个 API 开发者最想在日志里看到的状态码。

201 Created — 创建成功

POST 请求成功创建了资源。RESTful API 里,创建用户、上传文件成功后应该返回 201,而不是 200。

204 No Content — 删除成功

DELETE 请求成功后常用 204——服务器处理成功了,但不需要返回任何内容。如果你看到一个 API 返回 204,大概率是删除操作。前端看到 204 时,不要尝试读取响应体,会报错。

206 Partial Content — 断点续传

视频播放、大文件下载的核心状态码。客户端通过 Range 头部请求文件的一部分,服务器返回 206 + 对应的字节片段。你刷抖音时进度条随便拖,背后就是 206 在默默工作。

常见踩坑: 有些后端新手把创建接口误返回 200 而不是 201,前端同事调了半天发现状态码不对,其实功能是正常的。RESTful 规范里 201 才是创建成功——照着规范来,团队协作少一个争议点。


三、3xx 重定向类:浏览器在偷偷带你绕路

301 Moved Permanently — 永久搬家

资源永久迁移到了新 URL。搜索引擎看到 301 会把旧链接的权重全部转移到新链接。网站换域名时必用,SEO 影响最小的重定向方式。

302 Found — 临时转移

资源暂时在别处,下次还来问老地址。登录后跳转、活动页面跳转、A/B 测试都常用 302。搜索引擎不会把权重转移给新地址,所以 SEO 场景下不要误用 302。

304 Not Modified — 浏览器里的隐形冠军

你的浏览器每天发出成千上万个 304。当你访问一个网站时,浏览器问服务器:「这个图片/CSS/JS 我缓存里有,没改过吧?」服务器回答「304——没改,用缓存」。这极大地节省了带宽,是 Web 性能优化的基础机制之一。

304 不是错误,它是 HTTP 缓存机制的正常工作方式。很多人看到浏览器控制台里有 304 以为出问题了——放心,这是对的。

307 / 308 — 严格重定向

和 301/302 类似,但保证请求方法不变。POST 请求重定向后还是 POST(301/302 可能会变成 GET)。支付回调、表单提交场景建议用 307/308。


四、4xx 客户端错误类:排查率最高的状态码

400 Bad Request — 「你发的啥玩意?」

服务器看不懂你的请求。常见原因:

  • JSON 格式错误(多了一个逗号、少了一个引号)
  • 参数类型不对(传了字符串,接口要数字)
  • 请求头缺失

排查思路: 先用 navbox 的 JSON 格式化工具 检查请求体格式,确保 JSON 有效。大部分 400 都是 JSON 写错了这种低级错误。

401 Unauthorized — 你是谁?

未认证。你没有提供有效的身份凭证(Token、API Key、Cookie)。翻译成人话就是:你还没登录。

403 Forbidden — 你知道你是谁,但你不配

你已经登录了,但权限不够。普通用户试图访问管理后台 → 403。试想一下:401 像「请出示证件」,403 像「证件看过了,你不能进」。

404 Not Found — 互联网最著名的错误码

资源不存在。URL 写错了、文件删了、路径配错了,都会返回 404。

两个特别需要注意的场景:

  • SPA 单页应用: 前端路由如果不用 Hash 模式(#/about),刷新页面时服务器找不到对应的物理路径,会返回 404。需要在 Nginx 里配置 try_files $uri /index.html;
  • API 版本号: /v1/users 升级到 /v2/users 后没有保留旧路由,老客户端直接 404——这是 API 兼容性设计的常见疏忽

405 Method Not Allowed — 方法不对

URL 对了,但 HTTP 方法错了。GET 请求发到了只支持 POST 的接口上。检查一下你的 fetchaxios 调用是不是写错了 method。

408 Request Timeout — 你太慢了

客户端发送请求太慢,服务器等不及断开了连接。上传大文件时网速太差,或者写了一个死循环不停发请求,都可能触发 408。

409 Conflict — 数据冲突

最常见的是重复创建。注册时用户名已存在、订单号重复提交——后端返回 409 告诉你数据有冲突,不是系统出 Bug 了。

413 Payload Too Large — 文件太大了

上传头像、上传视频时特别常见。Nginx 默认限制请求体大小为 1MB,上传大文件超过这个限制就返回 413。解决方案:要么配 Nginx 的 client_max_body_size,要么用分片上传。

429 Too Many Requests — 你被限流了

短时间内请求太频繁,服务器触发限流。开放 API(如 GitHub API、OpenAI API)最常遇到的错误码。看到 429 的应对方案:

  1. 检查响应头中的 Retry-After 字段——服务器告诉你要等多少秒
  2. 实现指数退避(Exponential Backoff):第1次等1秒,第2次等2秒,第3次等4秒
  3. 不要再暴力重试——只会被封得更狠

💡 一句话总结 4xx 排查顺序: 先看 400(请求格式)→ 401/403(权限)→ 404(路径)→ 409(冲突)→ 429(限流)。按这个顺序排查能解决 90% 的问题。


五、5xx 服务器错误类:运维的噩梦

500 Internal Server Error — 程序员的至暗时刻

最通用的服务器内部错误。后端代码抛异常了、数据库连不上了、内存溢出了……通通返回 500。对前端来说 500 是最难调试的——你能做的就是确认请求无误后,把日志甩给后端同事。

502 Bad Gateway — 网关说「上游挂了」

Nginx 作为反向代理,把请求转发给后端应用(如 Node.js / Java / Python),但后端没有响应。常见原因:

  • 后端服务进程挂了
  • 端口写错了
  • 防火墙拦住了内网通信

503 Service Unavailable — 服务暂时不可用

服务器太忙或正在维护。和 502 的区别:502 是网关连不上后端,503 是服务器自己说「我不行了」

504 Gateway Timeout — 上游太慢了

Nginx 把请求转发给后端,后端在规定时间内(通常 60 秒)没有返回结果。常见于慢查询、第三方 API 超时、大文件处理。

502 vs 504 速记口诀: 502 是「上游连不上」,504 是「上游连上了但太慢,等不下去了」。

507 Insufficient Storage — 磁盘满了

服务器磁盘空间不足,无法存储请求数据。上传文件时最常遇到。登录服务器执行 df -h 检查磁盘使用率,清理日志文件通常能立刻解决。


六、那些你不知道的有趣状态码

418 I’m a Teapot — 「我是茶壶」

1998 年的愚人节 RFC 提案定义的。服务器用茶壶身份拒绝冲泡咖啡的请求。虽然是个玩笑,但很多框架和库把它当作 Easter Egg 保留了下来——你调 API 时看到 418,大概率是后端同事在跟你开玩笑。

真实存在的标准状态码(RFC 7725),以《华氏 451 度》命名。当内容因法律要求(版权投诉、政府审查)被屏蔽时,返回 451。比 404 更明确地告诉用户:「东西确实存在,但不给你看,是法律要求的。」

103 Early Hints — 预加载提示

2022 年新增的状态码。服务器在正式响应之前先告诉浏览器:「这个页面需要加载 style.css 和 logo.png,你先去下载,省得等」。配合 Link 头部使用,可以显著提升页面加载速度


七、实战:用 navbox 速查表快速定位问题

工作中遇到不熟悉的状态码,不需要去 Google 查半天。打开 navbox 的 HTTP 状态码速查表,三个核心功能帮你在 10 秒内搞定:

功能一:按类目浏览 200-299 成功、300-399 重定向、400-499 客户端错误、500-599 服务器错误——一目了然。面试前把 4xx 和 5xx 全扫一遍,面试官怎么问都不慌。

功能二:精确搜索 直接搜状态码数字(如 429),秒出含义、原因和常见场景。线上出故障时,看一眼工具就能告诉运维:「这个 507 是磁盘满了,去清日志」。

功能三:冷门状态码全覆盖 普通速查表只收录 30 个常见的,这个工具连 422(Unprocessable Entity)、425(Too Early)、511(Network Authentication Required)这些不太常见但面试和特定场景会用到的状态码都收录了。

我自己的习惯:把速查表存到浏览器书签栏,看到不认识的 HTTP 状态码立刻点开查。几次下来,常用的几十个自然就记住了。


写在最后

HTTP 状态码是 Web 开发的基础设施,看似简单但每天都在用。记住几个关键原则:

  • 2xx 是好事,3xx 是绕路,4xx 是你的问题,5xx 是服务器的问题
  • 排查 4xx 用状态码速查表 + JSON 格式化工具,效率翻倍
  • 遇到冷门状态码先查再猜,不要想当然

把 navbox 的 HTTP 状态码速查表 收藏起来,下次看到 451507 或者恶搞的 418 时,你就知道该怎么应对了。要是觉得记住了,打开工具扫一遍 4xx 列表试试——我赌五毛钱你至少会漏记两三个。