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的四次挥手

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

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

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

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

        

  • 相关阅读:
    2021/9/20 开始排序算法
    快速排序(自己版本)
    2021/9/17(栈实现+中后缀表达式求值)
    2021/9/18+19(中缀转后缀 + 递归 迷宫 + 八皇后)
    20212021/9/13 稀疏数组
    2021/9/12 线性表之ArrayList
    开发环境重整
    Nginx入门
    《财富的帝国》读书笔记
    Linux入门
  • 原文地址:https://www.cnblogs.com/yaya-003/p/12800065.html
Copyright © 2011-2022 走看看