从输入URL到页面加载发生了什么?
1.DNS解析(网址->IP地址):DNS缓存(从DNS缓存里查找浏览器之前是否访问过这个网址,如果有直接返回IP地址,如果没有则查找操作系统),分级查找:本地DNS服务器,根域名服务器,COM顶级域名服务器,Google.com域名服务器
2.建立TCP链接(三次握手)->为什么两次不可以?
3.客户端发送HTTP请求
4.服务端处理HTTP请求,并且返回HTTP报文
5.浏览器解析和渲染页面
6.连接结束(4次挥手)->为什么三次不可以
一、HTTP建立连接的三次握手:
1.客户端具有发送信息的能力
2.服务端具有接受信息和发送信息的能力
3.客户端具有接受信息的能力
二、HTTP连接结束的四次挥手
三、浏览器解析和渲染页面
1.浏览器获取到html文件是自上而下加载,这个过程中下载和渲染是同步进行的,CSS文件并行请求,图片文件异步请求,JS文件,先挂起,先加载完js文件后继续渲染html文档
2.html -> DOM树 + css -> CSSOM树 = render树 (注:有些东西不会渲染,比如head标签、display:none)
3.在浏览器中将这个render树布局下来
4.绘制这棵树
4.绘制这棵树