Chrome
Chrome 为什么打开一个页面会有 4 个进程
程序、进程、线程
- 一个进程是一个程序运行的实例
- 线程依附于进程,而进程中使用多线程并行处理能提升运算效率
多进程浏览器架构 Chrome 浏览运行至少需要:
- 1 个浏览器主进程
- 1 个 GPU 进程
- 1 个渲染进程
- 1 个网络进程
多进程模型提升了浏览器稳定性、流畅性和安全性。但也带来了更高的资源占用。 高内聚、松耦合
HTTP 请求流程
- HTTP 协议(超文本传输协议 HyperText Transfer Protocol),它是基于 TCP 协议的应用层传输协议。端到端数据传输的一种规则
- HTTP 属于应用层,建立在传输层协议 TCP 之上
- 客户端和服务端建立 TCP 连接之后,发送请求和响应都是通过访问 Socket 接口调用协议实现
- 域名映射 IP 叫做域名系统 简称 DNS
-
http 请求流程
- 构建请求(构建请求行信息)
- 查找缓存(本地资源副本)
- 准备 IP 地址和端口
- 等待 TCP 队列
- 建立 TCP 连接
- 发送 HTTP 请求
-
Chrome 中有这样一个机制:一个域名同时最多只能建立 6 个 TCP 连接
- 如果同一个 TCP 下有 10 个请求同时发生,那么其中 4 个请求就会进入排队等待状态
- 状态码 301 是永久重定向,而 302 是临时重定向
- HTTP/1.1 默认采用持续连接,一个 TCP 连接允许多个 HTTP 请求
输入 URL 到页面展示发生了什么
- 域名解析
- 建立 TCP 连接
- 建立 HTTP 请求
- 服务器处理 HTTP 请求
- 关闭 TCP 连接
- 浏览器解析资源
- 浏览器渲染页面
HTTPS 安全协议
HTTPS 可理解为 HTTP+SSL/TLS ,即 HTTP 下加入 SSL 层
- SSL(安全套接字层):SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。
- TLS(传输层安全):其前身是 SSL
加密算法
-
对称加密
- 有流式、分组两种,加密和解密都是使用的同一个密钥。
- 例如:DES、AES-GCM、ChaCha20-Poly1305 等
-
非对称加密
- 加密使用的密钥和解密使用的密钥是不相同的
- 分别称为: 公钥、私钥,公钥和算法都是公开的,私钥是保密的。
- 非对称加密算法性能较低,但是安全性超强,由于其加密特性,非对称加密算法能加密的数据长度也是有限的。
- 例如:RSA、DSA、ECDSA、 DH、ECDHE。
-
哈希算法
- 将任意长度的信息转换为较短的固定长度的值,通常其长度要比信息小得多,且算法不可逆。
- 例如:MD5、SHA-1、SHA-2、SHA-256 等。
-
数字签名
- 签名就是在信息的后面再加上一段内容(信息经过 hash 后的值),可以证明信息没有被修改过。hash 值一般都会加密后(也就是签名)再和信息一起发送,以保证这个 hash 值不被修改。
参见