从浏览器输入url后都经历了什么

  • 先进行DNS域名解析,先查看本地hosts文件,查看有没有当前域名对应的ip地址,若有直接发起请求,没有的话会在本地域名服务器去查找,该查找属于递归查找,如果本地域名服务器没查找到,会从根域名服务器查找,该过程属于迭代查找,根域名会告诉你从哪个与服务器查找,最后查找到对应的ip地址后把对应规则保存到本地的hosts文件中。
  • 如果想加速以上及之后的http请求过程的话可以使用缓存服务器CDN,CDN过程如下:
         1. 用户输入url地址后,本地DNS会解析url地址,不过会把最终解析权交给CNAME指向的CDN的DNS服务器
         2. CDN的DNS服务器会返回给浏览器一个全局负载均衡IP
         3. 用户会根据全局负载均衡IP去请求全局负载均衡服务器
         4. 全局负载均衡服务器会根据用户的IP地址,url地址,会告诉用户一个区域负载均衡设备,让用户去请求它。
         5. 区域负载均衡服务器会为用户选择一个离用户较近的最优的缓存服务器,并把ip地址给到用户
         6. 用户想缓存服务器发送请求,如果请求不到想要的资源的话,会一层层向上一级查找,知道查找到为止。
  •  进行http请求,三次握手四次挥手建立断开连接
  •  服务器处理,可能返回304也可能返回200
  1. 返回304说明客户端缓存可用,直接使用客户端缓存即可,该过程属于协商缓存
  2. 返回200的话会同时返回对应的数据
  •   客户端自上而下执行代码      

    1.其中遇到CSS加载的时候,CSS不会阻塞DOM树的解析,但是会阻塞DOM树的渲染,并且CSS会阻塞下面的JS的执行
    2.然后是JS加载,JS加载会影响DOM的解析,之所以会影响,是因为JS可能会删除添加节点,如果先解析后加载的话,DOM树还得重新解析,性能比较差。如果不想阻塞DOM树的解析的话,可以给script添加一个defer或者async的标签。

              defer:不会阻塞DOM解析,等DOM解析完之后在运行,在DOMContentloaed之前

              async: 不会阻塞DOM解析,等该资源下载完成之后立刻运行
    3.进行DOM渲染和Render树渲染
        1)  获取html并解析为Dom树
        2)  解析css并形成一个cssom(css树)
        3)  将cssom和dom合并成渲染树(render树)
        4)  进行布局(layout)
        5)  进行绘制(painting)
        6)  回流重绘
            6.1) 回流必将引起重绘,重绘不一定引起回流

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

武良神

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

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

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

打赏作者

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

抵扣说明:

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

余额充值