浏览器进程将URL通过进程间通信发给网络进程
然后网络进程要先查找本地缓存
查找缓存
浏览器中的网络进程在本地查找是否存在有效的缓存,如果有则直接将缓存返回给浏览器进程,进行展示。
查找缓存的过程
- 如果是https 在设置了离线缓存,请求拦截的情况下,会先查找service worker
- 查找memory cache (内存缓存)一般用于存储脚本 ,图片等
- 查找disk cache(硬盘内存)比memory cache 空间更大,存储的有效时间更长
- 如果是http2 查找push cache(推送内存)通常存在在session中
解析URL 获取服务器IP地址(DNS解析)
如果没有有效的缓存,那么就开始解析url 获取服务器的IP地址
DNS过程
本地查找(递归查询)
- 浏览器缓存
- 本地host
- 本地DNS缓存
- 本地DNS服务器
本地DNS转发(迭代查询)
- 本地dns服务器将本地主机发来的查询报文转发给根服务器(.)
- 根服务器返回包含域名的顶级域名服务器的IP
- 本地dns服务器将查询报文发给顶级域名服务器
- 顶级域名服务器返回权威域名服务器的IP
- 本地dns服务器将查询报文发给权威域名服务器
- 权威域名服务器把IP返回给本地DNS服务器
- 本地DNS服务器将域名和IP地址的映射返回给本地主机
拿到地址后,开始建立连接
tcp 三次握手
- 客户端 发送一个syn报文和 seq初始化随机序列号
- 服务器收到后,返回 自己的seq ,和ack 确认号(客户端的seq+1)
- 客户端收到服务器的返回后,向服务器发送 确认ack号(服务器seq+1) ,seq(服务器的ack)