一张图帮你看懂,在浏览器输入网址回车后,都发生了什么?

首先我们来看图:

在这里插入图片描述

当我们在浏览器中输入一个网址,例如:baidu.com,按下回车键后,会发生什么呢?

主要会发生以下这些过程:域名解析(获取IP地址)、建立HTTP连接、发送HTTP请求、数据传输、渲染网页、断开HTTP连接。

下面我们来一个个讲解。

1. 域名解析:寻找服务器的IP地址

在我们输入域名后,浏览器首要任务是将该域名解析成计算机可理解的IP地址。域名是方便我们人类记的,计算机不能直接理解域名,因此需要将域名转换成IP地址。域名和IP地址的对应关系一般会在各个缓存中存储:

  1. 浏览器缓存:首先,计算机检查浏览器缓存中是否有该域名对应的IP地址,这是最快的方法。
  2. 操作系统缓存:如果浏览器缓存中没有,计算机会继续搜索操作系统缓存。
  3. 电信运营商缓存:若操作系统缓存也没有,计算机就会去找电信运营商(如电信、联通、移动)的缓存。
  4. 公共DNS缓存:如果以上缓存中都找不到IP地址,计算机将最后尝试查找公共DNS缓存。

如果在以上缓存中都找不到IP地址,计算机将向DNS服务器发出请求,DNS服务器将从根服务器、顶级域名(TLD)服务器和权威DNS服务器层层查找,最后返回IP地址。

这是它们的层次结构图:
在这里插入图片描述
(图片来源:https://xie.infoq.cn/article/9584c7089e5f966a90c1c5d9a)

简单地说就是,根DNS服务器提供顶级域名(TLD)服务器的IP地址,顶级域名(TLD)服务器提供权威DNS服务器的IP地址,而权威DNS服务器负责解析baidu.com域名的DNS查询,然后返回该域名的IP地址。
在这里插入图片描述
(图片来源:https://xie.infoq.cn/article/9584c7089e5f966a90c1c5d9a)

2. 建立HTTP连接:客户端与服务器的握手

当计算机获取到IP地址之后就可以向服务器发起HTTP请求了。我们的电脑(客户端)和服务器之间通过三次握手建立HTTP连接,连接建立好之后,客户端和服务器之间就可以传输数据了。

三次握手简单地说就是客户端向服务器喊话:

1、客户端:兄弟你在吗?收到请回答。
2、服务器:兄弟我在呢,你能听到我说话吗?
3、客户端:我能听到,我们开始传数据吧。

在这里插入图片描述

3.发送HTTP请求:数据传输

HTTP连接建立之后,浏览器会向服务器发送HTTP请求,请求服务器返回网页内容。

发送HTTP请求的过程通常是这样的:

  1. 浏览器向服务器发送一个 HTTP 请求报文,其中包含了请求的资源路径、请求方法等信息。
  2. 服务器接收到请求报文后,会返回一个 HTTP 响应报文,其中包含了资源内容、响应状态码等信息。
  3. 浏览器接收到响应报文后,会对资源内容进行解析,并将其显示在浏览器中。

HTTP请求是整个过程中最核心的步骤,它决定了我们最终看到的网页内容。

HTTP请求完成后,浏览器会渲染网页,将 HTML 代码转换为我们可以看到的内容。

渲染网页的过程通常是这样的:

  1. 浏览器会解析 HTML 代码,并将其转换为 DOM 树。
  2. 浏览器会根据 DOM 树,将网页中的元素显示在浏览器中。
  3. 浏览器会根据 CSS 代码,对网页中的元素进行美化。
  4. 浏览器会根据 JavaScript 代码,对网页中的元素进行动态交互。

渲染网页是整个过程中很耗时的步骤,如果网页内容较多,渲染时间可能会比较长。渲染完成之后,一个完整的网页就出现在我们面前了。

4. 断开连接:结束数据传输

当客户端和服务器之间数据传输完成,要断开连接时,需要通过四次握来断开,四次握手就是四次交流,客户端和服务器通过这四次交流确定没什么新数据要传了,而且之前的数据都已经传完了,最后就可以断开连接了。

四次握手的过程大概是这样的:

1、客户端:兄弟我没东西要传了,我要断开连接了
2、服务器:好的,我知道了,我还有点东西没传完,我传完了告诉你
3、服务器:兄弟,我东西都传好了,我们可以断开连接了
4、客户端:好的,我们断开吧

在这里插入图片描述

最后

我们在浏览器输入网址回车后,大概就是发生这么几件事:域名解析(获取IP地址)、建立HTTP连接、发送HTTP请求、数据传输、渲染网页、断开HTTP连接(不一定会马上断开)。我们每次浏览网页的时候都会经历这几个过程,理解这些基本步骤有助于我们更好地理解互联网的工作原理。

如果你需要上面的图,请关注公众号“编程我们也会”,回复”浏览器网址“获取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值