HTTP 状态码入门404、502、500 到底是什么意思
网站打不开时,浏览器经常只给一个数字:404、502、500,看着像密码,其实它是一套很规矩的分类。只要记住首位数字代表哪一类,再对照几个最常见的码,排障时就能少走一半弯路。本文把 2、3、4、5 开头的状态码一次讲清,最后给一个见码就知道该查哪里的对照思路。
先记住最核心的一句话:状态码是服务器给你的“回执”,告诉你这次请求结果怎么样。它一共三位数,首位数字决定大类,后两位是具体原因。新手不用背全部,记住四个大类就够了。
2 开头表示成功。最常见的是 200,意思是请求成功、内容正常返回。页面能打开、接口返回数据,基本都是 200。还有一个 204,表示成功但没有内容返回,比如提交表单后不需要刷新页面,服务器就回一个 204 告诉浏览器“收到了,不用再要东西了”。
3 开头表示重定向,意思是“你要的东西不在这,去别处拿”。最常见的是 301 永久重定向和 302 临时重定向。网站从 http 换成 https 时,http 地址返回 301 跳到 https,就是这个意思。换域名、改文章链接时也要用 301,搜索引擎会把旧链接的权重转到新链接上;如果只是临时活动页跳转,用 302 更合适,活动结束改回来也不会留后遗症。
4 开头表示客户端错了,问题多半在请求这边。最出名的是 404,意思是服务器上没有这个地址,可能是链接写错了、文章删了、文件移走了。还有 403,意思是服务器明白你要什么,但就是不让你看,常见原因是权限没给够、目录没放行。401 则是要先登录,没登录或登录过期了就先去登录。看到 4 开头,先别急着重启服务器,先检查地址、权限和登录状态。
5 开头表示服务器错了,问题在服务端。500 是服务器内部出错,程序崩了、配置写错了都可能报它,这时要去看程序日志。502 是网关收到了请求,但后端没接上,比如 Nginx 转发过去,程序根本没启动,就是典型的 502。503 是服务暂时不可用,可能是正在维护、也可能是被流量冲垮了,过一会再试往往就好了。504 是网关等后端等超时了,后端太慢、数据库卡住了都可能导致它。
把这套分类变成排障思路就很简单了。页面报 404,先查链接和文件在不在;报 403,先查权限和登录;报 500,先看程序日志;报 502,先看后端程序在不在跑、端口对不对;报 504,先看后端是不是太慢、数据库有没有慢查询。状态码本身不会告诉你全部答案,但它能把“不知道哪错了”变成“先查哪一步”,这一步就值很多时间。
最后提醒一个小习惯:自己写接口、做网站时,别什么错都返回 200 再在内容里写“失败了”,浏览器、搜索引擎、监控工具都是认状态码的。成功就是 2 开头,没找到就是 404,参数错了就是 400,服务器错了就是 5 开头,规矩用好了,别人排你的问题也轻松得多。
总结一下:HTTP 状态码入门就是记住四个大类,2 成功、3 跳转、4 客户端错、5 服务器错,再记住 404、403、502、500 这几个高频码。下次网站报错,先看一眼状态码,再决定该查链接、权限、程序还是后端,排障就有章法了。
- 点赞
- 收藏
- 关注作者
评论(0)