当我们打开网页时,浏览器究竟做了什么

面试的时候经常被问到:在浏览器中输入https://www.baidu.com/index.html会发生什么?那么就利用这篇博客来总结一下,在这个过程中浏览器究竟做了什么

对URL的理解,请参考博客:URL初识
总体来说,会有以下几个过程:
(1)DNS域名解析
(2)建立TCP连接(三次握手)
(3)HTTP发起请求
(4)浏览器接收HTTP响应
(5)渲染页面
(6)关闭TCP连接(四次挥手)

1、DNS域名解析

在浏览器输入网址后,首先要经过域名解析,因为浏览器并不能直接通过域名找到对应的服务器,而是要通过 IP 地址。
但是为什么不直接用IP地址呢?因为IP地址是一个32位的二进制数,相较于域名来说记忆更加困难,所以使用域名更方便记忆。

DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。DNS 是一个网络服务器,我们的域名解析简单来说就是在 DNS 上记录一条信息记录。

域名解析流程
在这里插入图片描述
首先浏览器需要将URL解析为IP地址,解析域名用到的是DNS协议,首先查询浏览器缓存,如果没有会继续访问本机的hosts文件,因为hosts文件中会保存之前访问过网站的域名和IP数据,如果hosts文件中依然没有,就给本地DNS发送查询请求

DNS查询有两种方式:递归查询和迭代查询
递归查询:本地的DNS服务器向根域名服务器发送查询请求,根域名向一级域名服务器发送查询请求,依次类推直到查询到该域名的IP地址,再依次返回,最后根域名服务器将IP地址返回给本地DNS服务器;

迭代查询:本地NDS服务器向根域名服务器发送查询请求,根域名返回一级域名服务器的地址,然后DNS服务器再向一级域名服务器发送查询请求,以此类推,直到查询到对应的IP地址返回给DNS服务器

为了加速DNS解析的过程,如果近期访问过的网页,很有可能缓存在本地的hosts文件,这样再次访问,就不需要去服务器拿数据,直接访问本地缓存数据,可以降低服务器的压力,提高响应速度。

2、建立TCP连接

TCP连接的详细过程,请参考博客:三次握手

3、HTTP发起请求

HTTP请求报文格式如下:
在这里插入图片描述
HTTP的具体信息,请参考博客:HTTP协议

4、HTTP响应

HTTP响应报文格式如下:
在这里插入图片描述
HTTP的具体信息,请参考博客:HTTP协议

5、渲染页面

6、关闭TCP连接

四次挥手详细内容,请参考博客:四次挥手

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值