IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 浏览器工作原理(页面输入URL后发生了什么) -> 正文阅读

[网络协议]浏览器工作原理(页面输入URL后发生了什么)

文章在本人个人博客同步更新

面试题:在浏览器输入url后按下回车发生了什么

1. DNS查找

??先检查本地缓存中是否存在,若不存在就会从最近的DNS服务器开始查找一层一层向上查找,直到找到最终的DNS服务器,找到之后就会返回到浏览器,然后由浏览器进行本地记录缓存,防止下次访问再次多级查找.

2.建立TCP连接(三次握手)

第一次:客户端向服务器发送SYN包
第二次:服务器收到SYN包之后向客户端发送ACK+SYN包 (至此客户端向服务端的单向连接已建立)
第三次:客户端接收到ACK包之后给服务端发送ACK包 (服务端到客户端的连接已经建立)

3.SSL/TLS协议(HTTPS)

超清晰详解见https原理
在这里插入图片描述

4.响应

??一旦我们建立了到web服务器的连接,浏览器就代表用户发送一个初始的HTTP GET请求,对于网站来说,这个请求通常是一个HTML文件。 一旦服务器收到请求,它将使用相关的响应头和HTML的内容进行回复。

5.慢开始、14kb原则

??第一个响应包是14kb大小。这是慢开始的一部分,慢开始是一种均衡网络连接速度的算法。慢开始逐渐增加发送数据的数量直到达到网络的最大带宽。在"TCP slow start"中,在收到初始包之后, 服务器会将下一个包的大小加倍到大约28kb。 后续的包依次是前一个包大小的二倍直到达到预定的阈值,或者遇到拥塞。

6.拥塞控制

??服务器通过tcp包来发送数据,客户端接收到数据之后会返回一个确认帧来确认消息的传输。当服务端传输速率过快过多时就会出现确认帧没有返回的情况,所以服务器就么没办法收到数据传输成功的消息,确认帧丢失。解决办法就是通过确认帧来控制数据的发送速率

7.解析

??从收到第一次14kb的数据开始,浏览器就进行推测性解析并尝试根据所拥有的数据进行渲染,对于web性能优化来讲这就是第一次的14kb数据所要包含页面的渲染所需的所有内容或者页面模版的重要性

*在页面渲染之前html、css、js必须全部解析完成

8.构建DOM树

??解析html构建DOM树,遇到非阻塞资源会发出请求并且继续解析(css、img),但是script标签却是可以阻塞解析的进行(这就是为什么script标签总是放在最后的原因),通过预加载扫描器可以缓解阻塞情况(预加载扫描器可以在解析占用浏览器主进程的时候,扫描css、图片、字体等进行高级资源优先请求),当浏览器解析到资源的时候可能已经被请求完或下载完,减少了阻塞的发生。同时进行的是生成cssom树,然后将dom树和cssom树合并成render树,根据render树进行创建真实dom,然后进行计算每个节点的位置大小(重排),最后绘制dom在页面上(重绘)

详情请见MDN官方文档:
https://developer.mozilla.org/zh-CN/docs/Web/Performance/How_browsers_work

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-27 12:13:42  更:2021-08-27 12:15:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 21:19:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码