200 OK不是"成功"?HTTP状态码潜规则

你有没有遇到过这种情况?网页刷不出来,显示"404";请求失败,显示"500";点个链接页面突然跳转到别的地址了......

这些数字到底是啥?服务器想告诉你什么?

今天,我用收快递的故事,来讲讲HTTP状态码那些事儿。


原文地址

墨渊书肆/200 OK不是"成功"?HTTP状态码潜规则


状态码是干嘛的?

你网购之后,快递小哥会怎么跟你反馈?

  • 「您好,您的快递到了」------送成功了
  • 「抱歉,这个地址查无此人」------找不到人
  • 「不好意思,快递网点着火了」------出问题了

HTTP状态码,就是服务器在给你「反馈」的方式。

它不是一个随意的数字,而是一个三位的密码。第一位代表「类别」,后面两位代表「具体情况」。

第一位 含义 像快递说什么
1xx 收到请求,正在处理 「收到了,稍等」
2xx 搞定了 「给您送到了」
3xx 去找别人 「这个地方不归我管,你去找别的网点」
4xx 你的问题 「地址写错了,不是我能送的」
5xx 我的问题 「网点出问题了,送不了」

来,我们一个个说。


1xx:收到了,稍等

1xx这个区间,属于「过渡状态」------服务器收到请求了,正在处理,你等着就行。

100 Continue

「您好,我要寄这个快递。」

「好,我先看看单子。」

这就是100 Continue。客户端发送了一个请求,服务器说:「收到了,你继续发。」

一般用于大文件上传------客户端先问一句「能收吗」,服务器说「能」,客户端再开始传。

101 Switching Protocols

「您好,我能换成到付吗?」

「可以,给您改一下。」

101就是这样的场景------服务器同意切换协议,比如从HTTP升级到WebSocket。


2xx:搞定了

「送到了」就是2xx系列的主题。

200 OK

最常见的成功状态码。

快递小哥说:「您好,您的快递放驿站了。」

但注意!200 OK不代表内容一定是你想要的,只代表请求成功了。具体对不对,要看响应body。

201 Created

「您好,我再寄一个。」

「好嘞,单子给您开好了。」

201表示请求成功了,而且服务器创建了新的资源。常见于POST、PUT请求,比如你提交了一个表单。

204 No Content

「您好,帮我把驿站里的快递签收一下。」

「好嘞,已经签收了。」然后就没有然后了。

204的意思是:请求成功了,但没有内容返回给你。 常见于DELETE操作,或者「已读回执」这种不需要返回数据的场景。

206 Partial Content

「您好,我只要这个包裹里的其中一件,另外几件不要了。」

「好嘞,给您拆出来。」

206就是「部分内容」------常见于断点续传,或者下载一个大文件的时候只下载其中一部分。


3xx:去找别人

3xx系列的意思是:「这个件不归我管,你去找别的网点。」

301 Moved Permanently

「您好,我要寄到A地址。」

「不好意思,A地址的网点永久搬走了,以后直接寄到B地址吧,别来这儿了。」

301永久重定向------服务器告诉你,这个地址永久搬家了,以后访问直接去新地址。

SEO影响:301会传递SEO权重,搜索引擎会更新收录。

302 Found / 307 Temporary Redirect

「您好,我要寄到A地址。」

「今天A网点临时不接单,您先去B网点凑合一下,明天再来A。」

302307临时重定向------服务器告诉你,这次去另一个地址,但以后还来这里。

区别302可能会被滥用为「临时」但实际永久的情况,所以后来出了307专门表示「临时」且方法不变。

304 Not Modified

「您好,我上次寄存在你这儿的东西还在吗?」

「在呢,跟之前一样,没动过,您直接拿走吧。」

304是我们上一篇文章讲过的------缓存命中。服务器告诉浏览器:「你要的东西没变,直接用缓存。」

这是最「省钱」的状态码------不用重新传输内容,节省带宽。


4xx:你的问题

4xx开头的错误,是客户端的「锅」。服务器说:「这不是我的问题,是你地址写错了。」

400 Bad Request

「您好,我要寄一棵树,但是要种在月球上。」

「抱歉,您这要求我做不到。」

400就是服务器看不懂你的请求------参数错误、格式不对、JSON写错了,都可能返回400。

401 Unauthorized

「您好,我要取件。」

「抱歉,您没带身份证,不能取。」

401未授权------你需要提供身份凭证,比如登录、 Token。

403 Forbidden

「您好,我有身份证,让我进去取件。」

「不好意思,我们店不接待你。」

403禁止访问------服务器知道你是谁,但就是不让你进。和401的区别是:401是「没带证」,403是「带证也不让你进」。

404 Not Found

「您好,我要取件,单号是XXX。」

「抱歉,查无此件。」

这是最著名的状态码------你要的东西不存在

但注意!404不一定是真的「没了」,有时候是权限问题不想让你看到,也会返回404(故意装成不存在)。

405 Method Not Allowed

「您好,我要用快递柜寄件。」

「抱歉,这个快递柜只能收件,不能寄件。」

405是请求方法不对------比如接口只支持GET,你用POST去请求,就会返回405。

408 Request Timeout

「您好,我要寄件......」

......(沉默五分钟)

「您还寄吗?不寄我关门了。」

408是请求超时------客户端发请求的时候,服务器等太久没等到。

409 Conflict

「您好,我要同时寄一个东西到A地址和B地址,但是不能一样。」

「抱歉,这做不到,我们只能寄一个地方。」

409冲突------常见于并发修改,比如两个人同时改同一个快递单,第二个提交的人就会收到409。

413 Payload Too Large

「您好,我要寄一艘航母。」

「对不起,您这太大了,我们运不了。」

413是请求体太大------上传文件超过限制了。

429 Too Many Requests

「您好,我要寄件。」

「好。」

「我要寄件。」

「好。」

「我要寄件。」

「......您别寄了,今天已经被您包圆了,明天再来吧。」

429就是请求太多了------接口有 rate limit,超过次数就返回这个。


5xx:我的问题

5xx开头的错误,是服务器自己「翻车」了。

500 Internal Server Error

「您好,我的快递呢?」

「不好意思,我们的网点着火了,快递全烧了,今天送不了。」

500是最常见的服务器错误------具体原因未知,反正是服务器挂了。

502 Bad Gateway

「您好,我的快递呢?」

「是这样的,今天我们用的是隔壁网点的仓库,但隔壁网点关门了。」

502网关错误------服务器作为网关或代理,去请求上游服务器,结果上游返回了错误。

503 Service Unavailable

「您好,我的快递呢?」

「不好意思,我们网点今天休息,暂时不接单,过俩小时再来吧。」

503是服务暂时不可用------一般是服务器在维护或者过载,过一会儿可能就好了。

常见于「服务正在启动中」「高峰期限流」等场景。

504 Gateway Timeout

「您好,我的快递呢?」

「仓库说在找呢......五分钟过去了......还在找呢......」

「到底能不能送?」

504网关超时------服务器作为网关,等上游服务器响应,等太久没等到。


总结:状态码速查表

类别 含义 常见状态码
1xx 收到了,稍等 100, 101
2xx 搞定了 200, 201, 204, 206
3xx 去找别人 301, 302, 304, 307
4xx 你的问题 400, 401, 403, 404, 405, 429
5xx 我的问题 500, 502, 503, 504

写在最后

现在你应该懂了:HTTP状态码就是服务器在跟你「对话」。

  • 200不代表真的「完全OK」,可能只是「收到了」
  • 404不代表网站「挂了」,可能是「不想让你看」
  • 500不代表彻底没救,可能是「暂时忙」

下次遇到这些状态码,别慌,先看看是几开头------问题出在谁身上,一目了然。

相关推荐
Hilaku2 小时前
OpenClaw 很爆火,但没人敢聊它的权限安全🤷‍♂️
前端·javascript·程序员
ConardLi2 小时前
OpenClaw 完全指南:这可能是全网最新最全的系统化教程了!
前端·人工智能·后端
丁哥3 小时前
99.9%纯AI 做了一个ICO图标生成器(免费 全尺寸 不限文件大小)2ICO.CN欢迎品鉴
前端
兆子龙3 小时前
React Native 完全入门:从原理到实战
前端·javascript
哇哇哇哇3 小时前
vue3 watch解析
前端
SuperEugene3 小时前
Vite 实战教程:alias/env/proxy 配置 + 打包优化避坑|Vue 工程化必备
前端·javascript·vue.js
leafyyuki3 小时前
用 AI 和 SDD 重构 Vue2 到 Vue3 的实践记录
前端·人工智能
德育处主任4 小时前
『NAS』一句话生成网页,在NAS部署UPage
前端·javascript·aigc
前端老兵AI4 小时前
前端工程化实战:Vite + ESLint + Prettier + Husky 从零配置(2026最新版)
前端·vite