宏观视角下的浏览器

进程和线程

进程:是操作系统最小的执行单位

线程:是CPU最小的执行单位

进程:就是在内存中正在运行的应用程序

1、在内存中独占一个空间

2、每个进程之间是相互隔离的

线程:就是进程的最小单位

1、一个进程由多个线程组成

2、每个线程之间是相互隔离的

一个页面启动的时候启动了几个进程?

最少4个:

浏览器主进程

GPU进程(渲染动画)

网络进程

渲染进程

(插件进程)

计算机网络的七层模型

物理层:使用一定的物理介质(光纤、WiFi、网线) 通过 0和1 传输 电信号

链路层:MAC地址 封装byte

网络层:IP协议(主机A向主机B发送消息)

传输层:UDP协议(用户数据包协议)/TCP协议(传输控制协议) 端口

会话层:断点续传

表示层:翻译,解决不同系统之间数据传输的问题

应用层:HTPP协议

UDP协议:

只管发,不管收,如DNS解析、微信电话、流媒体

TCP协议:

1、重传机制

2、排序机制------根据数据包的编号对数据进行排序,保证数据包的完整性和准确性。

传输过程(三次握手):1、主机A发送消息给主机B 2、主机B回复确认消息给主机A 3、主机A回复确认消息给主机B

也可以分为四层:

物理层(物理层、链路层)

网络层 IP协议

传输层 UDP协议、TCP协议

应用层 (会话层、表示层、应用层)HTTP协议

备注:一般没有协议的层都不说很重要。

HTTP的请求流程

浏览器发送http请求的流程

1、构造请求行

2、查找缓存

3、准备IP地址和端口号

4、等待TCP队列 (一个域名最多只能建立6个TCP链接)----Chrome

5、建立TCP链接

6、发生http请求

服务器处理htttp请求

1、返回请求内容

2、断开连接

进程角度讨论

从输入URL地址到浏览器显示界面,这个过程中到底发生了什么?

1、浏览器主进程输入url请求

2、浏览器主进程将url请求派发给网络进程

3、网络进程发送url请求,获取响应头数据,解析响应头数据,之后将数据转发给浏览器主进程

4、浏览器主进程接受到网络进程响应的数据之后,发送"提交文档"消息给渲染进程

备注:提交文档就是:在浏览器主进程中,将网络进程中接收到的HTML数据提交给渲染进程。

5、渲染进程中接收到数据之后,准备接收HTML数据,接收数据的方式是直接和网络进程直接建立数据管道

6、文档数据传输完毕,渲染进程会返回"确认提交消息"给浏览器主进程

7、浏览器主进程,收到渲染进程"确认提交"消息之后,开始移除旧文档,替换新文档页面

相关推荐
autobaba11 小时前
编写bat文件自动打开chrome浏览器,并通过selenium抓取浏览器操作chrome
chrome·python·selenium·rpa
Lin Hsüeh-ch'in11 小时前
如何彻底禁用 Chrome 自动更新
前端·chrome
Dusk_橙子19 小时前
在Linux中,如何使用grep awk sed find?
linux·运维·chrome
Yana.nice1 天前
Bash函数详解
开发语言·chrome·bash
是晓晓吖2 天前
源网站数据采集方案之解析DOM(四)
前端·chrome
王道之矢2 天前
重现 Chrome 经典:用 WebAssembly 打造像素级完美的二维码生成器扩展
chrome·webassembly
你怎么知道我是队长2 天前
python-enumrate函数
开发语言·chrome·python
Xi-Xu3 天前
隆重介绍 Xget for Chrome:您的终极下载加速器
前端·网络·chrome·经验分享·github
守城小轩3 天前
Chromium 136 编译指南 - Android 篇:获取源码(五)
chrome·指纹浏览器·浏览器开发·手机浏览器
angen20183 天前
Ruby如何采集直播数据源地址
前端·chrome