HTTP 状态码入门:网站返回的数字在说什么
你在浏览网页时,一定见过这样的画面:想打开的页面打不开,屏幕上只剩一个数字,比如 404;或者提交表单后页面提示 500,什么都没发生。这些数字不是随便编的,它们是网站服务器发给浏览器的一句简短回话,告诉浏览器这次请求的结果怎么样。
每次你在地址栏输入网址、点开一个链接,浏览器都会向服务器发一次请求。服务器收到请求后,除了把网页内容发回来,还会在开头附上一个三位数的状态码。这串数字就是这次请求的成绩单,浏览器看到它,就知道接下来该怎么做。
状态码的第一位数字决定了它属于哪一类。1 开头表示请求还在处理中,平时很少见到。2 开头表示成功,最常见的是 200,意思是你要的东西已经顺利拿到,页面可以正常显示。3 开头表示重定向,也就是你要找的东西搬家了,服务器告诉浏览器去新的地址再找一次。4 开头表示请求本身有问题,最有名的是 404,意思是服务器上没有你要的这个页面。5 开头表示服务器自己出了问题,比如最常见的 500,意思是服务器内部处理时遇到了错误。
404 是大家最熟悉的一个状态码。它出现的原因通常很简单:链接写错了、页面被删掉了,或者网址里的某个字母打错了。遇到 404 不用慌,先检查一下地址栏里的网址有没有拼写错误,再试试回到网站首页,从导航重新找一找要的页面。很多网站还会给 404 页面加上搜索框和热门链接,帮你快速回到正轨。
401 和 403 也经常出现,但意思不一样。401 表示你还没登录,或者登录已经过期了,服务器不知道你是谁,所以拒绝提供内容,解决办法是重新登录。403 表示服务器知道你是谁,但你没有权限看这个页面,比如普通用户想打开管理员才能看的后台页面,就会收到 403。这时候换账号或者找管理员开通权限才是正路,反复刷新是没有用的。
500 系列的状态码则说明问题出在服务器那一边。500 是服务器内部出错,502 是网关收到了无效的响应,503 是服务器暂时过载或者正在维护。看到这些数字,普通用户能做的就是等一会儿再试,或者换个时间再来。如果是自己在维护网站,看到 500 就要去查服务器的错误日志,看看是哪一行代码出了问题。
状态码不只是给人看的,程序员写代码时也要经常和它打交道。调用接口拿到 200,说明数据顺利返回;拿到 400,说明发过去的参数有问题,要检查请求格式;拿到 429,说明请求发得太频繁,被限流了,需要放慢速度。读懂状态码,就等于读懂了服务器的情绪,排查问题时能少走很多弯路。
下次再看到一串陌生的状态码,不用急着关掉页面。先看它的第一位数字,大致判断是成功、搬家、请求出错还是服务器出错,再结合具体的数字想想下一步该做什么。记住几个最常见的:200 是成功,301 和 302 是搬家,401 是没登录,403 是没权限,404 是找不到,500 是服务器出错。掌握了这套暗号,你和网站之间的对话就顺畅多了。
- 点赞
- 收藏
- 关注作者
评论(0)