|
|
|
|
公众号矩阵

除了404,网页“暗号”还有哪些?

相信对404,大部分人已经不陌生了。一旦它出现,就意味着:我们想要访问的页面找不到了。那么,404到底是什么?又是什么原因导致404的发生呢?

作者:中兴文档来源:中兴文档|2021-08-30 08:40

404 Not Found

上网冲浪的时候,不管是“网页迷路了”还是“网页乘坐火箭飞向太空”,页面都有一个神秘数字“404”。

相信对404,大部分人已经不陌生了。一旦它出现,就意味着:我们想要访问的页面找不到了。

那么,404到底是什么?又是什么原因导致404的发生呢?

其实,404是网页服务器无法找到用户请求的文档时发出的HTTP(Hyper Text Transfer Protocol,超文本传输协议)状态码。出现404页面就是为了提醒用户网页发生了错误。 导致这种错误发生的原因可能是:

  • 网页数据被更改、或者上传到网页的文件目录/文件名称被更改,导致网页失效。
  • 网页文件被移动或删除,导致原链接失效。
  • 我们自己输入的网址有错误,不能链接到所需的文件。
  • 你压根没插网线或者家里Wi-Fi信号太差。
  • ……

总之,404就是网页向你发出了“此路不通”的信号。

502 Bad Gateway

除了404,还有一个最常见的HTTP状态码——502。之前某站不能访问的时候,网友们纷纷发声:刚开始页面出现404以为是自己的原因,后来刷出来502,知道不是自己的原因就放心了。

因为502代码表示内部网络故障或设置问题,即内部网络拥塞。

通常是网络内部存在大量的数据调用或交互时,网页内容提供方的一个或两个服务器,由于性能缺陷或程序错误,无法正常运行,使得网页上的内容无法被传输到用户的浏览器上。

说人话就是服务器崩了、网站挂了。此种情况在抢票、某个热点事件爆发时都很常见。。。 这个时候我们能做的就是刷新网页、重新打开页面、以及耐心的等待。 由此可知,404和502这两种HTTP状态码在本质上是有很大不同的,下面我们继续了解下其它HTTP状态码。

HTTP状态码

超文本传输协议HTTP本身是一个简单的请求-响应协议,规定了网页服务器和浏览器之间的信息传递规范。HTTP状态码(HTTP Status Code)是网页服务器响应信息的一部分,是用来表示超文本传输协议响应状态的3位数字代码。

当你访问一个网页时,浏览器会向网页所在服务器发出请求。该网页所在的服务器接收和解释请求消息之后,会返回一个包含HTTP状态码的响应信息用以响应浏览器的请求。

我们访问网页时,服务器都会通过HTTP状态码向我们传达简单的信息。状态码既可以指明具体请求是否已成功,又可以揭示请求失败的确切原因。

常见状态码

HTTP状态码被记录在服务器日志中,同时也可能在客户端显示,就是打开页面出错时,浏览器显示的错误信息代码,比如大家看到的404或502。

状态码的第一个数字代表了服务器响应的状态,目前常见的响应状态有5种。

除了前面提到的404和502,以下9个常见的状态码应该能让你对状态码有更直观的感受。

(1) 100 Continue(继续)

客户端已接收部分请求,并准备好接收剩下的部分,请求者需要继续提出请求。

(2) 200 OK(请求成功)

服务器已成功处理了请求,可以正常打开网页啦(或者请求的文件)。

(3) 206 Partial Content(部分内容)

服务器成功处理了部分GET请求。HTTP下载工具(比如迅雷)都是使用这类响应实现断点续传或者将一个大文档分解为多个下载段同时下载的。

(4) 301 Moved Permanently(永久移动)

被请求的资源已永久移动到新位置,响应信息中会包括新的URI(Uniform Resource Identifier,统一资源标识符),浏览器会自动定向到新URI。今后任何对此资源的请求都应使用新的URI代替。

(5) 302 Found(发现)

服务器要求客户端执行临时重定向(原始描述短语为“Moved Temporarily”)。服务器临时从不同位置的网页响应请求,但是这样的重定向是临时的,之后的请求客户端仍应向原有地址发送。

(6) 400 Bad Request(错误请求)

服务器通过返回400错误告诉客户端,客户端的请求语法出错,服务器端无法理解。

(7) 401 Unauthorized(未经授权)

服务器要求客户端进行身份验证,错误的登录尝试是导致这一错误的主要原因。

(8) 403 Forbidden(禁止访问)

服务器理解了你的请求,但是拒绝执行。任何登录对403错误都不起作用,尝试访问被禁止的网站目录时,就会发生403错误。

(9) 500 Internal Server Error(内部服务器错误)

服务器内部的错误导致无法完成请求,一般来说,可能是服务器的程序码出错。例如,网页服务器过载时将无法正确处理访问请求。

简单来说,1、2、3开头的状态码我们不用关心,4、5开头的稍微留意下就行了。

【编辑推荐】

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区
  2. 带你用HTML5+CSS3做完整页面(前端项目实战,网页实战)
  3. 如何用最快的方式发送 10 万个 HTTP 请求
  4. http协议与www服务基础概念详解1视频课程(老男孩全新运维进阶系列L040)
  5. HTTP协议各版本的区别的你知道吗?
  6. 网络面经:HTTP 2.0的这些新特性,是时候了解一下了
【责任编辑:赵宁宁 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢

订阅专栏+更多

带你轻松入门 RabbitMQ

带你轻松入门 RabbitMQ

轻松入门RabbitMQ
共4章 | loong576

42人订阅学习

数据湖与数据仓库的分析实践攻略

数据湖与数据仓库的分析实践攻略

助力现代化数据管理:数据湖与数据仓库的分析实践攻略
共3章 | 创世达人

13人订阅学习

云原生架构实践

云原生架构实践

新技术引领移动互联网进入急速赛道
共3章 | KaliArch

41人订阅学习

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微