用户在浏览器地址栏输入网址 到 页面加载完成,发生了什么?

  1. 客户端地址栏输入网址;

    • 举个小白的例子:小白(域名)在一家大公司(云厂商)上班,有天小红(客户端)来看小白。
  2. 域名解析;

    • 也叫DNS解析,云厂商将域名转化为 IP 地址,IP 才是网站真正的网络地址;
    • 接着奏乐接着舞:可他到了小白的公司,发现找不到小白,于是去找前台小姐姐(DNS解析),小姐姐查了查小白的工位(IP),查到后告诉了小红。
  3. TCP “三次握手”;

    • 通过“三次握手”建立 TCP 连接,这里的三次是建立连接成功最少的通讯次数;
    • 接着奏乐接着舞:
      1. 第一次握手:小红到了办公室门口,有门禁,敲门后说:“小白你在里面吗?我是小红。”;
      2. 第二次握手:小白说:“我在,你是那个小红啊?”;
      3. 第三次握手:小红说:“我是和你在东北玩泥巴的小红啊!”,假设此时小白已认可小红。
  4. 客户端发送请求;

    • 请求页面数据(一般会存在多次请求,html,css,js,图片······)
    • 接着奏乐接着舞:小红将目光(接口)转向大方脸,大眼睛,大红唇(请求参数)的小白。
  5. 服务器端响应;

    • 服务器端接口收到请求,给予响应;
    • 接着奏乐接着舞:小白发现自己被看着,站了起来(小白现在的样子(响应数据)已经通过目光(接口)展现在小红的眼里、心里和深深脑海里(响应数据传递到客户端))。
  6. 页面渲染;

    • 主要分为 DOM => CSSDOM => RenderTree => Layout => Painting => Display;

    • 接着奏乐接着舞:小红和小白曾经在一起的经历一一回想(逐步渲染)完整的小白呈现(页面渲染完成。老子说过:只有躯壳的人是不完整的。)

      更新中(将会详细剖析2到5阶段)······