浏览器渲染页面的过程——一次完整的HTTP服务:TCP连接建立、发起HTTP请求、keep-alive、重绘,重排

结合具体问题:在浏览器输入一个网址并访问,具体发生了什么?

1. 对这个网址进行DNS域名解析,得到对应的IP地址

DNS怎么找到域名的?

DNS域名解析采用的是递归查询的方式,过程是,先去找DNS缓存->缓存找不到就去找根域名服务器->根域名又会去找下一级,这样递归查找后,找到了,返回给我们的浏览器

2. 根据这个IP,找到对应的服务器,发起TCP的三次握手,即建立连接

TCP连接的建立(三次握手)?

1、客户端采用TCP协议将带有SYN标志的数据包发送给服务器,等待服务器的确认。(客户端:一个SYN)

2、服务器端在收到SYN的数据包后,必须确认SYN,即向客户端发送一个ACK标志,同时,也发送一个SYN标志。(服务端:一个ACK+一个SYN)

3、客户端在接收到服务器端的SYN+ACK数据包后,会再向服务器发送一个ACK,完成三次握手。客户端和服务器正式建立了连接,开始传输数据。(客户端:一个ACK)

3. 建立TCP连接后发起HTTP请求

为什么HTTP协议要基于TCP来实现?
TCP是一个端到端的可靠的面向连接的协议,HTTP基于传输层TCP协议,发生数据传输问题时,有重传机制。

4. 服务器响应HTTP请求,浏览器得到HTML代码

5. 浏览器解析HTML代码,并请求HTML代码需要的资源(js,css,图片等)

6. 浏览器对页面进行渲染呈现给用户 *

如何渲染页面?

a)解析html文件构成 DOM树
b)解析CSS文件构成渲染树
c)边解析,边渲染
d) 等到渲染树构建完成后,浏览器开始布局渲染树,并将其绘制到屏幕上。
e)JS 单线程运行,JS有可能修改DOM结构,意味着JS执行完成前,后续所有资源的下载是没有必要的,所以JS是单线程,会阻塞后续资源下载

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

webhyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值