zoukankan      html  css  js  c++  java
  • 从一个url地址最终到页面渲染完成,发生了什么

    作为前端面试题之以,从一个url地址最终到页面渲染完成,共发生了以下六个步骤:

    1.DNS解析:将域名地址解析为ip地址

      先从浏览器DNS缓存中查找,如果没找到

      再从系统DNS缓存中查找,如果也没有找到

      然后再从路由器DNS缓存中查找,如果还是没有找到

      接着从网络运营商DNS缓存中查找,如果也还是没有找到

      就递归搜索,举个栗子:你要搜索:blog.baidu.com

        先从.com域名下查找DNS解析,如果没找到

        再从.baidu域名下查找DNS解析,如果还是没有找到

        就从blog域名下查找,如果还是没有找到

      页面会提示出现错误

    2.建立TCP连接,也就是TCP三次握手

    第一次握手,由浏览器发起,告诉服务器我要发送请求了,你在不在?

    第二次握手,由服务器发起,告诉浏览器我在,我准备接受了,你赶紧发送吧

    第三次握手,由浏览器发送,告诉服务器,我马上就发了,准备接受吧

    3.发送请求

      请求报文:HTTP协议的通信内容

    4.接收响应

      响应报文

    5.渲染页面

      当遇见HTML标记时浏览器调用HTML解析器解析成Token并构建dom树

      当遇见style/link标记,浏览器调用css解析器,处理css标记并构建cssom树

      当遇见script标记时,调用JavaScript解析器,处理script代码(绑定事件,修改dom树/cssom树)

      将dom树和cssom树合并成一个渲染树

      根据渲染树来计算布局,计算每个节点的几何信息(布局)

      将各个节点颜色绘制到屏幕上(渲染)

    注意:这五个步骤不一定按照顺序执行,如果dom树或cssom树被修改了,可能会执行多次布局和渲染

        往往实际页面中,这些步骤都会执行多次的

    6.断开连接,TCP的四次挥手

      第一次挥手,由浏览器发起的,发送给服务器,我东西发送完了(请求报文),你准备关闭吧

      第二次挥手,由服务器发起的,告诉浏览器,我东西接接受完了(请求报文),你也准备把

      第三次挥手,由服务器发起,告诉浏览器,我东西发送完了(响应报文),你准备关闭吧

      第四次挥手,由浏览器发起,告诉服务器,我东西接受完了(响应报文),我准备关闭了,你也准备把

        

  • 相关阅读:
    差分约束
    关系运算图。。。(差分约束)
    克鲁斯卡尔算法+并查集
    整体代换(数学)
    魔性の分块 | | jzoj1243 | | 线段树の暴力
    论人品 | | noip1015模拟考
    hash 表 | | jzoj 1335 | | 脑残+手残 | | 集合的关系
    凸轮大总结
    Floyd | | jzoj[1218] | | [Usaco2009 Dec]Toll 过路费 | | BZOJ 1774 | | 我也不知道该怎么写
    topsort | | jzoj[1226] | | NOIP2003神经网络
  • 原文地址:https://www.cnblogs.com/yaya-003/p/12800065.html
Copyright © 2011-2022 走看看