zoukankan      html  css  js  c++  java
  • 说一说从输入URL到页面呈现都发生了什么?

    从你在浏览器输出了一串地址开始,到浏览器呈现页面给你,中间一共都经历了什么?

    第一步,执行dns解析

    1. 去chrome浏览器缓存去寻找dns所对应的ip。查看dns:chrome://net-internals/#dns 。
    2. 去操作系统缓存里寻找ip
    3. 去本机hosts文件里寻找ip

    第二步,询问宽带运营商

    如果前三步都获取不到的时候,进入第二步,浏览器去请求宽带运营商提供的dns解析请求。

    第三步,准备发送

    拿到目标ip后,浏览器某端口发起的HTTP报文经过在传输层(TCP协议)对收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。在网络层(IP协议),增加作为通信目的地的MAC地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。

    第四步,发起请求

    浏览器某端口发起的tcp请求经过层层路由最后到服务器端的网卡,服务器端链路层收到数据后,按照链路层一直到应用层顺序往上发送。一共三次握手。当到了应用层的时候才算建立了链接,真正收到了客户端发送过来的HTTP请求。

    第五步,浏览器解析

    浏览器接收到服务器传回的报文,通常是一个html的文本,开始解析其 html。

    • 浏览器并行发起请求去获取 html 所需要的其他静态资源,
    • 并逐行读取 html 标签。
    • 标签和样式一起构成 CSSOM 对象
    • layout 计算每个元素在页面中的位置
    • painting 利用 GPU 完成渲染

    中间如果读取到 js 或者其他 css 浏览器都将暂停读取 html,而开始执行并重复上面 3 到 5 的步骤。

    到此,你的浏览器就正确的渲染出了页面。

  • 相关阅读:
    基于Kubernates微服务案例
    领导人怎样带领好团队
    前端性能核对表Checklist-2018
    国际巨头互联网公司一些运营与管理思路
    IT研发工程师职业规划
    高性能风控数据平台设计
    基础设施DevOps演进之路
    2017-2018年Scrum状态调查报告
    大型互联网系统的监控流水线
    小程序【情书与歌】一小时过审经验小谈
  • 原文地址:https://www.cnblogs.com/everlose/p/12779672.html
Copyright © 2011-2022 走看看