从一个url地址到页面渲染完成,发生了什么?

1. DNS解析,将域名解析为 ip 地址
  • 浏览器DNS缓存
  • 系统DNS缓存
  • 路由器DNS缓存
  • 网络运营商DNS缓存
  • 递归搜索: (blog.baidu.com为例)
    • .com 域名下查找DNS解析
    • .baidu 域名下查找DNS解析
    • blog 域名下查找DNS解析
    • 出错了(都找不到)
2. TCP连接,TCP三次握手
  1. 由浏览器发起,告诉服务器,我要发送请求了 (在吗?)
  2. 由服务器发起,告诉浏览器,我准备接收了,你赶紧发送吧 (又干啥,麻溜的)
  3. 由浏览器发起,告诉服务器,我马上就发送了,你准备接收吧 (帮我查点东西,我现在拿给你看)
3. 发送请求
  • 发送请求报文,HTTP协议的通信内容 (您看,就是这些)
4. 接受响应
  • 接收响应报文 (查到了,拿去做事吧)
5. 渲染页面
  1. 遇见 HTML 标记,浏览器调用HTML解析器解析成Token并构建DOM树
  2. 遇见 style/link 标记,浏览器调用CSS解析器,处理CSS标记 并 构建CSSOM树
  3. 遇见 script 标记,调用javascript解析器,处理script代码(绑定事件,修改DOM树/CSSOM树)
  4. 将 DOM树 和 CSSOM树 合并成一个渲染树
  5. 根据渲染树来计算布局,计算每一个节点的几何信息(布局)
  6. 将各个节点颜色绘制到屏幕上(渲染)
    注意: 这几个步骤不一定是按顺序执行的,如果DOM树或CSSOM树被修改了,可能会执行多次布局和渲染 往往页面中这些步骤都会执行多次
6. 断开连接,TCP四次挥手
  1. 由浏览器发起,告诉服务器,我东西(请求报文)发送完了,你准备关闭吧
  2. 由服务器发起,告诉浏览器,我东西(请求报文)接收完了,我准备关闭了,你也准备吧
  3. 由服务器发起,告诉浏览器,我东西(响应报文)发送完了,你准备关闭吧
  4. 由浏览器发起,告诉服务器,我东西(响应报文)接收完了,我准备关闭了,你也准备吧
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值