本文已参与[新人创作礼]活动,一起开启掘金之路
个人总结在地址栏上输入一个url,到这个页面呈现出来之间的过程如下:
-
url ->baidu.com 域名是代称 ->ip
首先浏览器去本地hosts文件去查,是否域名有绑定ip -
如果本地host没有域名绑定 ----》》运营商的DNS服务器进行解析 DNS解析-》ip
-
如果拿到了ip,要进行Tcp连接 ----》三次握手,通俗一点理解如下:
客户端:大哥我要连你
服务端:连吧
客户端:好了 连接上了
总结一句话也就是:
客户端发送 SYN 数据包给服务器服务器收到客户端的数据包,返回 SYN/ACK 数据包给客户端
客户端收到服务器的返回后,发送 ACK 数据包给服务器,代表握手结束,连接成功
那么为什么要进行三次握手?
因为要确保双方发送数据的畅通。需要三次握手才能确认双方的接收与发送能力是否正常。 第三次握手的时候,是可以携带数据的。但是,第一次、第二次握手不可以携带数据 -
Tcp连接上,客户端向服务端发起一次请求,请求资源
-
服务端相应客户请求,并返回客户端需要的资源
-
资源已经拿到了,不用Tcp连接 --》tcp断开连接 --》》四次挥手
客户端:大哥我接受完了,断开吧
服务端:好的,我看看还有啥东西要给你
服务端:ok了没有给你的东西了
客户端:ok -
渲染页面(怎么具体渲染页面)
解析HTML以构建DOM树 –> 构建渲染树 –> 布局渲染树 –> 绘制渲染树
渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的html都解析完成之后再去构建和布局render树。它是解析完一部分内容就显示一部分内容