Open yihan12 opened 8 months ago
从输入URL到渲染出整个页面包括三个部分:
(1)、DNS解析URL
DNS解析就是寻找哪个服务器上有请求的资源,因为ip地址不易记忆,一般会使用URL域名(如www.baidu.com)作为网址,DNS解析就是将域名“翻译”成IP地址
具体过程:
a、浏览器缓存:浏览器会按照一定的频率,缓存DNS记录
b、操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,就会取操作系统中找
c、路由缓存:路由器也有DNS缓存
d、ISP的DNS服务器:ISP有专门的DNS服务器应对DNS查询请求
e、根服务器:ISP的DNS服务器找不到,就要向根服务器发出请求,进行递归查询
(2)、浏览器发送请求与服务器交互
a、浏览器利用tcp协议通过三次握手与服务器建立连接
http请求包括header和body,header中包括请求的方式(get和post)、请求的协议 (http、https、ftp)、请求的地址ip、缓存cookie,body中有请求的内容
b、浏览器根据解析到的IP地址和端口号发起http的get请求
c、服务器接收到http请求之后,开始搜索html页面,并使用http返回响应报文
d、若状态码为200显示响应成功,浏览器接收到返回的HTML页面后,开始渲染页面
(3)、浏览器对接收到的HTML页面进行渲染
a、浏览器根据深度遍历的方式把HTML节点遍历成DOM树
b、将CSS解析成CSSOM树
c、将DOM树和CSSOM树构造成Render树
d、根据Render树计算所有节点在屏幕中的位置,进行布局(回流)
e、遍历Render树并调用硬件API绘制所有节点(重绘)
在客户端输入 URL 后,会有一个递归查找的过程,从浏览器缓存中查找->本地的hosts文件查找->找本地DNS解析器缓存查找->本地DNS服务器查找,这个过程中任何一步找到了都会结束查找流程。
权威 DNS 服务器 :返回相应主机的 IP 地址。
首先,判断是不是https的,如果是,则HTTPS其实是HTTP + SSL / TLS 两部分组成,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
(1)、用户输入一个URL后,浏览器就会向服务器发出一个请求,请求URL对应的资源
(2)、接到服务器的响应内容后,浏览器的HTML解析器,会将HTML文件解析成一颗DOM树,DOM树的构建是一个深度遍历的过程,当前节点的所有子节点都构建完成后,才会去构建当前节点的下一个兄弟节点
(3)、将CSS解析成CSSOM树
(4)、根据DOM树与CSSOM树,构建Render Tree
(5)、浏览器会根据Render Tree能知道网页中哪些有节点,各个节点的CSS,以及各个节点的从属关系
(6)、计算出每个节点在屏幕中的位置后,最后一步就是Painting,根据计算出的规则,把内容画到屏幕上
要点如下:
从输入一个URL到网页展示的过程
从输入URL到渲染出整个页面包括三个部分:
(1)、DNS解析URL
DNS解析就是寻找哪个服务器上有请求的资源,因为ip地址不易记忆,一般会使用URL域名(如www.baidu.com)作为网址,DNS解析就是将域名“翻译”成IP地址
具体过程:
a、浏览器缓存:浏览器会按照一定的频率,缓存DNS记录
b、操作系统缓存:如果浏览器缓存中找不到需要的DNS记录,就会取操作系统中找
c、路由缓存:路由器也有DNS缓存
d、ISP的DNS服务器:ISP有专门的DNS服务器应对DNS查询请求
e、根服务器:ISP的DNS服务器找不到,就要向根服务器发出请求,进行递归查询
(2)、浏览器发送请求与服务器交互
a、浏览器利用tcp协议通过三次握手与服务器建立连接
http请求包括header和body,header中包括请求的方式(get和post)、请求的协议 (http、https、ftp)、请求的地址ip、缓存cookie,body中有请求的内容
b、浏览器根据解析到的IP地址和端口号发起http的get请求
c、服务器接收到http请求之后,开始搜索html页面,并使用http返回响应报文
d、若状态码为200显示响应成功,浏览器接收到返回的HTML页面后,开始渲染页面
(3)、浏览器对接收到的HTML页面进行渲染
a、浏览器根据深度遍历的方式把HTML节点遍历成DOM树
b、将CSS解析成CSSOM树
c、将DOM树和CSSOM树构造成Render树
d、根据Render树计算所有节点在屏幕中的位置,进行布局(回流)
e、遍历Render树并调用硬件API绘制所有节点(重绘)
总结
域名解析
在客户端输入 URL 后,会有一个递归查找的过程,从浏览器缓存中查找->本地的hosts文件查找->找本地DNS解析器缓存查找->本地DNS服务器查找,这个过程中任何一步找到了都会结束查找流程。
权威 DNS 服务器 :返回相应主机的 IP 地址。
建立TCP连接
首先,判断是不是https的,如果是,则HTTPS其实是HTTP + SSL / TLS 两部分组成,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
浏览器渲染页面
(1)、用户输入一个URL后,浏览器就会向服务器发出一个请求,请求URL对应的资源
(2)、接到服务器的响应内容后,浏览器的HTML解析器,会将HTML文件解析成一颗DOM树,DOM树的构建是一个深度遍历的过程,当前节点的所有子节点都构建完成后,才会去构建当前节点的下一个兄弟节点
(3)、将CSS解析成CSSOM树
(4)、根据DOM树与CSSOM树,构建Render Tree
(5)、浏览器会根据Render Tree能知道网页中哪些有节点,各个节点的CSS,以及各个节点的从属关系
(6)、计算出每个节点在屏幕中的位置后,最后一步就是Painting,根据计算出的规则,把内容画到屏幕上