• <用户输入url按下回车,一直到用户看到界面,这期间经历了什么>


    用户输入url按下回车,一直到用户看到界面,这期间都经历什么?

    一.  DNS解析缓存:

            1. 找到浏览器缓存解析域名;

            2. 找到和 DNS 缓存 ;

            3. 找到路由器 DNS 缓存;

            4. 找到查询 DNS 缓存( 80% 的 DNS 在查找, 到这一步就结束了);

            5. 递归查询,(查的是全球 13 台 DNS 根服务器的其中一个)

    二. 运行TCP (协议) 连接,三次握手,(更具上一步的请求回来的 IP 地址,去连接服务器)

            1.  第一次握手:由浏览器发给服务器(我想给你说话,你能听见吗)

            2.  第二次握手:由服务器发给浏览器(我能听见你说吧)

            3.  第三次握手:由浏览器发给服务器(好,开始通讯)

    三.  发送请求:

    四.  响应请求:

    五. 浏览器开始解析html:

             ---  预解析:将所有的外部资源,发送出去;

             ---  解析html: 生成 DOM 树;

             ---  解析css: 生成 cssom 树;

             ---  合并成一个 render 树;

             ---   js是否操作 DOM  或2样式;

             ---   有: 进行重绘重排(不好:1.尽量避免,2,最小化重绘重排)

             ---   没有: null;

             ---  最终展示页面;

    六.  断开 TCP 连接,四次挥手(确保数据的完整性)

            1. 第一次挥手:  由浏览器发给服务器(我的东西接受完了。要断开吗)

            2. 第二次挥手   由服务器发给浏览器( 我还由一些东西没有接受完,你等一会,我接受完了告诉你)

            3. 第三次挥手:由服务器发浏览器(我接收完了,你断开吧)

            4. 第四次握手:由浏览器发给服务器(好的,那我断开了)

  • 相关阅读:
    Key and Certificate Conversion
    openssl
    python http通信实现
    鼠标右键添加cmd
    好文章
    wireshark里无网络接口解决办法
    python垃圾回收
    终于有人把 Docker 讲清楚了
    mongodb的监控与性能优化
    mongodb创建超级用户和普通用户(对应数据库的用户)
  • 原文地址:https://www.cnblogs.com/yjzs/p/12353351.html
Copyright © 2020-2023  润新知