issues
search
nfssuzukaze
/
Blog
0
stars
0
forks
source link
从输入 URL 到页面展示
#20
Open
nfssuzukaze
opened
3 years ago
nfssuzukaze
commented
3 years ago
从输入
URL
到页面展示的过程中发生了什么
1. 用户输入
浏览器会判断用户输入的是
搜索内容
还是
URL
如果是
搜索内容
, 则地址栏会使用浏览器默认的搜索引擎, 来合成
新的带搜索关键字的 URL
如果是
URL
, 则地址栏会根据规则
合成完整的 URL
2. URL 请求过程
浏览器进程
通过进程间通信
将 URL 请求发送至 网络进程
网络进程查找本地缓存是否有需要请求的资源
如果没有的话
网络进程就会
通过 DNS 获取 URL 所对应的 IP 及 端口
如果 TCP 队列满了的话, 就会等待 TCP 队列(一个域名最多只能建立 6 个 TCP 连接)
建立 TCP 连接
构建请求信息并发送请求
网络进程接收响应信息
如果响应头有重定向信息的话, 浏览器就会从响应头的 Location 里获取重定向的地址, 重新发起请求
根据响应头的 Content-Type 来处理不同的数据类型的信息
如果有的话
获取本地缓存的资源
向浏览器进程
3. 准备渲染进程
通常来说一个 tab 对应一个渲染进程
但是浏览器有同一站点的原则: 符合同一站点原则的 tab 会共用一个渲染进程
一个新 tab 是从另一个 tab 打开
这两个 tab 对应的
协议与根域名
都相同
4. 提交文档
浏览器进程向渲染进程发出"提交文档"的信息
渲染进程与网络进程建立"管道", 进行数据传输
渲染进程获取数据后, 想浏览器进程返回"确认提交"的消息
浏览器接收到"确认提交"的消息,
更新浏览器界面状态
5. 渲染阶段
从输入
URL
到页面展示的过程中发生了什么1. 用户输入
2. URL 请求过程
3. 准备渲染进程
4. 提交文档
5. 渲染阶段