输入url,敲回车到页面展示经历了什么?

本文详细阐述了用户打开网页的过程,包括DNS解析的递归与迭代查询、TCP三次握手建立连接、HTTP请求与响应、浏览器解析渲染页面的步骤,以及新页面打开时的渲染进程策略。重点解析了网络通信和页面加载的技术细节。
摘要由CSDN通过智能技术生成

1.DNS解析

其实在浏览器中输入的域名是不能直接访问对应服务器的(它只是为了方便记忆),而是要通过DNS解析出对应的IP地址才能访问。
DNS解析的具体过程
1)包括浏览器搜索自身的DNS缓存、搜索操作系统的DNS缓存、读取本地的Host文件(C:\WINDOWS\system32\drivers\etc),如果里面有这条网址的记录,这返回其中的IP地址完成解析。
2)向本地DNS 服务器进行查询。如果要查询的域名包含在本地配置区域资源中,则返回解析结果,完成域名解析。
3)检查本地DNS服务器缓存中是否有该网址的记录,有则返回解析结果,完成解析。
4)如果上述步骤都没有得到对应IP地址,那么进行一下步骤
a.本地 DNS 服务器发送查询报文至根 DNS 服务器,根 DNS 服务器收到请求后,用顶级域 DNS 服务器地址进行响应给本地DNS服务器。
b.本地 DNS 服务器发送查询报文至顶级域 DNS 服务器。顶级域 DNS 服务器收到请求后,用权威 DNS 服务器地址进行响应给本地DNS服务器。
c.本地 DNS 服务器发送查询报文至权威 DNS 服务器,权威 DNS 服务器收到请求后,用 解析的 IP 地址进行响应,本地DNS服务器再返回给浏览器,完成域名解析。

补充:DNS的两种查询方式:

域名解析包含两种查询方式,分别是递归查询迭代查询
一、主机向本地域名服务器的查询一般都是采用递归查询。所谓递归查询就是:如果主机所询问的本地域名服务器不知道被查询的域名的IP地址,那么本地域名服务器就以DNS客户的身份,向其它根域名服务器继续发出查询请求报文(即替主机继续查询),而不是让主机自己进行下一步查询。因此,递归查询返回的查询结果或者是所要查询的IP地址,或者是报错,表示无法查询到所需的IP地址。
二、本地域名服务器向根域名服务器的查询的迭代查询。迭代查询的特点:当根域名服务器收到本地域名服务器发出的迭代查询请求报文时,要么给出所要查询的IP地址,要么告诉本地服务器:“你下一步应当向哪一个域名服务器进行查询”。然后让本地服务器进行后续的查询。根域名服务器通常是把自己知道的顶级域名服务器的IP地址告诉本地域名服务器,让本地域名服务器再向顶级域名服务器查询。顶级域名服务器在收到本地域名服务器的查询请求后,要么给出所要查询的IP地址,要么告诉本地服务器下一步应当向哪一个权限域名服务器进行查询。最后,知道了所要解析的IP地址或报错,然后把这个结果返回给发起查询的主机。

2.TCP连接

浏览器获得域名对应的IP地址以后,浏览器向服务器请求建立链接,发起三次握手;

3.发送HTTP请求

TCP/IP链接建立起来后,浏览器向服务器发送HTTP请求;

4.服务器处理请求并返回HTTP报文

服务器接收到这个请求,并根据路径参数映射到特定的请求处理器进行处理,并将处理结果及相应的视图返回给浏览器;

5.浏览器解析渲染页面

浏览器根据其请求到的资源、数据渲染页面,最终向用户呈现一个完整的页面。

打开新页面采用的渲染进程策略是:

如果从 A 页面打开 B 页面,且二者都属于同一站点的话,那么 B 页面复用 A 页面的渲染进程;
如果是其他情况,浏览器进程则会为 B 创建一个新的渲染进程。

具体渲染过程

1.HTML 转换为 DOM树
2.CSS 转换为 CSSOM(CSS树)
3.合并DOM和CSSOM,生成Render Tree(渲染树)(这棵树中不包含不可见节点)
4.布局(layout):根据Render Tree浏览器就知道网页中有哪些节点,以及各个节点与 CSS 的关系,从而知道每个节点的位置和几何属性(重排)
6.绘制(Paint):根据计算好的信息绘制整个页面(重绘)

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值