zoukankan      html  css  js  c++  java
  • <用户输入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. 第四次握手:由浏览器发给服务器(好的,那我断开了)

  • 相关阅读:
    mass Framework event模块 v9
    关于开源的网络爬虫/网络蜘蛛larbin结构分析
    socketaddr和socketaddr_in的区别于联系
    C语言中.h和.c文件解析
    [原]变参函数原理详解
    fopen和open有什么区别?
    C语言的那些小秘密之变参函数的实现
    c语言中逗号运算符和逗号表达式
    关于REST API设计的一些小经验
    Linux信号说明列表
  • 原文地址:https://www.cnblogs.com/yjzs/p/12353351.html
Copyright © 2011-2022 走看看