1. 当前位置: 网站首页 >  路由器百科 >  404和502到底是什么意思?我挨个点了一遍,4开头是你的锅,5开头是站长的锅

404和502到底是什么意思?我挨个点了一遍,4开头是你的锅,5开头是站长的锅

HTTP状态码家族一览:1xx搭话中、2xx成了、3xx搬家、4xx你的锅、5xx站长的锅,含200/204/206/301/302/304/403/404/429/418/500/502各码含义与打不开分诊口诀

看视频转圈、网页打不开、链接点进去一片白,浏览器其实每次都收到了服务器的回话,只是把最关键的那句藏起来了。那句话就是状态码——一个三位数,比如200、404、502。我自己有个小站,服务器日志里这些数字天天刷屏,但真要把每个码说明白,我还是找了个能随便点状态码的服务挨个试了一遍。先说一个总纲:4开头多半是你的问题,5开头是站长的锅。记住这句,一大半「打不开」的排查方向就有了。

先说清楚:状态码是服务器回话的第一句

你在地址栏敲一个网址回车,浏览器替你发出请求,服务器接住、处理、回话。回话的第一行永远是一个三位数字加一句短语,比如200 OK、404 Not Found。浏览器平时不给你看这个,它拿到数字自己判断:2开头就闷头渲染页面,3开头就跟着搬家,4开头和5开头才把错误页亮给你。

想亲眼看也不难。电脑上装了curl的话,一行命令的事:

curl -s -o /dev/null -w "%{http_code}" 网址

回车就吐一个数字。我拿自己站试了三条:首页回200;随手编一个不存在的页面回404;把文章分类写错(比如把百科分类的别名写成别的),居然回的不是404而是一个301跳转,跳到正确地址才200。同一个「打不开」,背后其实是三种完全不同的话——这就是状态码的价值,网址那串字符负责找到服务器,状态码负责告诉你结果。

五个家族:第一位数字定性质

状态码一百多个,但第一位数字把它们的性质划死了,就五家:

家族人话常见的
1xx搭话中,先应一声,别挂100、101
2xx成了,你要的在这200、204、206
3xx这里没有,去别处找301、302、304
4xx你要的东西或者你的姿势有问题403、404、429
5xx服务器自己出了岔子500、502、503、504

1xx平时几乎见不到,它是大文件传输过程中的「收到,继续说」。真正天天打交道的是后面四家。有个叫httpbin的服务专门提供了状态码测试地址,网址后面缀个数字就能点出对应的码,我把常用的全点了一遍,下面挑家里用得上的讲。

2开头成了、3开头搬家:六口人挨个数

200是最标准的成了,服务器把完整内容都给你了。网页、图片、接口,正常情况全是它。

204是「成了,但没东西给你看」。你在网页上点了个删除、标了个已读,服务器把事办了,回一个空的204——浏览器就没必要刷新出什么新页面。很多「点了没反应」的操作,后台其实回的就是204,事办成了,只是不吭声。

206最有意思:部分内容。它配合的是请求头里的Range(我要某一段)。看视频能随便拖进度条,靠的就是它——你把进度条拖到第7分钟,播放器只向服务器要那一片,服务器回206加那几MB的数据,不是把整个文件重发一遍。下载工具的断点续传也是同一个机制,从上次断的位置接着要。

301是永久搬家。服务器说「这东西以后永远住新地址了」,浏览器不但自己去新地址,还把这个搬家信息记在小本本上,下次你输旧地址它直接抄近路。浏览器缓存那篇提过它的坑:301记在浏览器本地,站长哪天改回去,老访客还是被拽到旧地址,清网站数据才掉。

302是临时出门,今天先去那边,明天说不定就回来了,浏览器不记长期小本本。登录跳转、活动页跳转用的基本都是它。301和302后面还有俩较真的兄弟307和308,区别在「转过去之后请求方式变不变」,写代码提交表单的才需要操心,家里上网碰不上。

304是「你手里的还新鲜,不用重发」。浏览器带着本地缓存的时间戳去问「我这份还能用吗」,服务器看一眼没变,只回一个304空身子,浏览器就用自己的缓存渲染。F12打开网络面板,看到一堆304,那是在帮你省流量,不是出错。

4开头是你的锅:403、404、429和一个彩蛋

403是「认识你,但不让进」。服务器知道你要什么,权限不够。家里NAS的共享文件夹、路由器后台的某些接口,账号权限没配对就是它。跟404的区别一句话:403是门开了有人拦着,404是压根查无此门。

404最出名:服务器收到了你的请求,也去找了,没这个东西。链接复制断了半截、页面被站长删了、大小写打错了,都会404。顺带说个容易混的:端口写错连404都拿不到,那是压根没敲开服务器的门,浏览器一直转圈到超时——404好歹是服务器理了你一句。

429是「你敲得太勤了」。短时间高频请求触发了限流,服务器让你缓缓再来。爬脚本、第三方App接口调太猛常见这个。

还有个彩蛋418:我是茶壶。1998年愚人节,IETF发了份恶搞协议RFC 2324,说用咖啡协议去控制茶壶就回418。本来就是玩笑,结果各大服务器纷纷当彩蛋实现了,2017年标准组织想把它删掉,程序员们发起「save418」抗议,最后留了下来。我用测试地址点了一下,服务器端端正正回了个418,互联网的幽默感有时候挺较真的。

5开头是站长的锅:500、502、503、504

500是服务器程序自己崩了,代码报错没接住,站长不翻日志都不知道死在哪行。

502全名Bad Gateway,坏网关。现在稍大点的网站前面都站着反向代理或者CDN,真正干活的程序躲在后面。502的意思是:前台把请求转给后台程序,后台要么挂了要么回了句它看不懂的话。你看到的502页面其实是前台发的,后台尸骨未寒。网站更新重启的那几秒,最容易撞上502。

503是忙不过来,服务器过载或者在维护,意思是「稍后再试」。抢票、秒杀、演唱会开售时刷出来的排队页,底色就是它。

504是网关等后台等超时了。跟502一对难兄难弟:502是后台秒挂,504是后台太慢,前台等到不耐烦先撂挑子。看视频晚高峰卡的时候,个别请求拿到的就是504。

四口锅全在服务器那侧,你这边再刷新、换浏览器、重启路由器都是白折腾。能做的只有等,或者换个渠道通知站长。我自己站上有回半夜程序崩了,第二天一看监控半小时全是502,读者那边就是「这网站是不是没了」——真相是站长在睡觉。

打不开怎么分诊:先看拿没拿到数字

把这些码串成排查顺序,下次打不开就不用瞎猜:

现象多半是你该干什么
一直转圈最后超时,啥码都没有门都没敲开查网络、DNS解析、网站是不是整个挂了
404页面没了或地址错核对地址有没有断半截,去站内搜一下标题
403权限不够该登录登录,该找管理员找管理员
5xx站长的锅等十分钟再试,还不行就是站长的事
页面正常但内容不对缓存旧了Ctrl+F5强刷,或者清网站数据

还有个反常识的:状态码说成了,内容照样可以是错的。微信文章链接删参数那个「参数错误」页,状态码就是堂堂正正的200——服务器说「你要的我都给你了」,给出来的却是一页错误提示。数字码管的是传输层面的成没成,内容对不对它不管。所以别把200当保险箱,页面白不白还是要自己看。

收尾给个口诀:2开头成了,3开头搬家,4开头换姿势再试,5开头别刷了,是站长的事。查网络排最后一位——传输层的事(连不上、证书报错)在数字码之前就拦下了,感兴趣的话https和http那篇是它的前半截故事。

展开全文


版权说明 手机扫码阅读
版权所有:《数巢笔记》 => 《404和502到底是什么意思?我挨个点了一遍,4开头是你的锅,5开头是站长的锅》
本文地址:https://www.shunot.com/lybk/1155.html
除非注明,文章均为 《SHUNOT》 原创,欢迎转载!转载请注明本文地址,谢谢。

发表评论

联系我们

在线咨询:点击这里给我发消息

微信号:master_135

工作日:9:00-23:00,节假日休息

扫码关注