浏览器中输入
URL
到页面返回的全过程
- 根据域名,进行DNS域名解析
- 拿到解析的IP地址,建立TCP连接
- 向IP地址发送HTTP请求
- 服务器处理请求
- 返回响应结果
- 关闭TCP连接
- 浏览器解析HTML
- 浏览器布局渲染
第1阶段 Request
通过URL向服务器发送请求,web服务端返回html文本-代码字符串
- DNS解析
- TCP三次握手四次挥手
- HTTP/HTTPS/HTTP2
第2阶段 Response
拿到代码后,浏览器在内存中开辟一块栈内存,用来给代码提供执行环境;同时分配一个主线程去一行一行的执行代码
第3阶段 执行代码
执行方式
- 取出一行代码,进栈执行 -> 执行完出栈
- 当浏览器遇到
link/script/img
等请求后,都会开辟新的线程去加载资源文件(说明浏览器多线程执行任务)
任务队列 - TaskQueue
- 微任务
- 宏任务
事件循环 - Event Loop
浏览器渲染页面的机制和原理:
- 解析
HTML
生成DOM树
,解析CSS
生成CSSOM树
- 将
DOM
树和CSSOM
树相结合生成渲染树
- 回流(Layout)
- 重绘(Painting)
- Display 将像素发送给GPU,展示在界面上