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

最新文章

  1. JavaScript小细节点罗列
  2. Linux 安装tomcat
  3. ubuntu下Pycharm安装及配置
  4. 全面理解Javascript中Function对象的属性和方法
  5. Python字符串与数字互转,数字格式化
  6. [Golang]使用自建代理访问指定网站
  7. [转贴]C语言复习笔记-17种小算法-解决实际问题
  8. C part 1 -- 指令篇
  9. 学习笔记TF012:卷积网络简述
  10. Web Magic 简介
  11. Linux Collection:文本编辑问题
  12. VS2013 添加控制台程序
  13. windows系统上利用putty通过SSH连接亚马逊AWS服务器
  14. Jenkins配置项目构建后的钉钉通知
  15. C++的MFC 与 HTML 双向通讯
  16. TestNG入门到...
  17. 读取配置文件工具demo
  18. Struts2常量详解
  19. url和uri的一些问题
  20. Angular 组件 mat-paginator 自定义详细用法

热门文章

  1. DataFrame-选择与切片
  2. jchdl - RTL Block
  3. Linux(二) 系统远程访问
  4. JavaScript (四) js的基本语法 - - 函数练习、arguments、函数定义、作用域、预解析
  5. TI CC1310 sub1G的SDK开发之入门
  6. Java实现 蓝桥杯VIP 算法提高 进制转换
  7. 第七届蓝桥杯JavaA组国(决)赛部分真题
  8. Android Button的四种点击事件
  9. java实现第一个数字
  10. java实现第五届蓝桥杯斐波那契