从输入URL到页面加载是怎么完成(上)

发布时间:2022-05-14 11:54:50 作者: 来源: 浏览量(1198 )
摘要:网站的访问从输入 URL 到页面加载是怎么完成?相信很多的人都浏览过网站,但是网站的访问过程是怎么完成的?下面小编的解析: 操作的过程很简单:打开浏览器,在地址栏中键盘输入www.baidu.com,回车,浏览网页&helli...

 网站的访问从输入 URL 到页面加载是怎么完成?相信很多的人都浏览过网站,但是网站的访问过程是怎么完成的?下面小编的解析:

操作的过程很简单:打开浏览器,在地址栏中键盘输入www.baidu.com,回车,浏览网页….

 

地址栏输入www.baidu.com

 

当你按输入www.baidu.com,浏览器接收到这个消息之后,会触发自动完成机制。浏览器根据自己的算法识别出你要访问的URL。

 

按下回车键

 

此时,回车键的电流回路通过电容器间接地闭合,使得少量的电流进入了键盘的主逻辑电路系统中。逻辑电路系统会扫描每个按键的状态,对于按键开关的电位弹跳变化进行解析,并将其转化为键盘码值。键盘控制器在得到码值之后,将进行编码。编码后,键码值将储存在寄存器内。键盘的USB控制器会查询到这个键码值,然后将键码值转换为一个数据包。之后,此数据包将通过键盘传递给计算机,计算机把数据包进行解码。最后,解码后的按键码值传输到操作系统的硬件层。

 

解析URL

 

浏览器通过URL可以知道将要使用HTTP协议,和请求资源的主页。

 

浏览器会将地址栏中输入的文字传给默认的搜索引擎。把文字传递给搜索引擎的时候,URL会带有特定的一串字符,用来告诉搜索引擎这次搜索来自某个浏览器。

 

Unicode(规范字符集)编码转换。如果有非ASCII的字符,将其进行Unicode编码转换。

 

检查HSTS列表

 

浏览器检查自带的“HSTS(HTTP严格传输安全)”列表,这个列表里包含了那些只使用HTTPS进行连接的网站。

 

DNS查询与解析

 

浏览器检查域名是否在缓存当中。

 

如果缓存中没有,就调用库函数进行查询。库函数在进行DNS解析之前,检查域名是否在本地 Hosts 里。

 

如果域名在缓存和Hosts中都没有,库函数会向 DNS 服务器发送一条 DNS 查询请求。

 

查询本地的DNS服务器。

 

首先查询地址解析协议(ARP)的缓存,如果缓存命中,则返回结果:目标 IP = MAC地址。如果缓存没有命中,就看看目标 IP 地址是不是在本地路由表中的某个子网内,并使用相关接口。然后查询选择的网络接口的MAC地址。

 

发送ARP请求,路由器或其他硬件会返回结果(结果中包含默认网关的IP地址)。

 

通过TCP/UDP协议向DNS服务器发送相应请求。如果本地DNS服务器没有找到结果,将会逐层查询,直到结果(目标服务器的IP地址)返回。

 

使用套接字

 

浏览器得到了目标服务器的 IP 地址,以及 URL 中给出来端口号(http默认端口号是80端口)后,浏览器调用库函数socket。这个请求将被封装,目标端口会被加入头部。在网络层会再加入一个IP头部,里面包含了目标服务器的IP地址以及本机的IP地址。接下来继续封装,将本地内置网卡的MAC地址和本地路由器的MAC地址封装进去。此时封装包已经准备就绪。

 

扫一扫二维码,直接手机访问此页

扫码访问手机页面

【免责声明】本网站的部分文章信息(文字、图片、音频视频文件等资源)来自于网络,均是为公众传播有益咨询信息之目的,其版权归版权所有人所有。 本站采用的非本站原创文章及图片等内容无法一一与版权者联系,如果本站所选内容的文章作者及编辑认为其作品不宜供大家浏览,或不应无偿使用, 请及时联系我们删除,同时向您深表歉意!请发送邮件153462496@qq.com进行联系。

感兴趣吗?

欢迎联系我们,我们愿意为您解答任何有关网站疑难问题!

在线客服
嘿,我来帮您!