1完成的http请求过程需要经过哪些环节?
1)、域名解析;
2)、发起TCP的3次握手;
3)、建立TCP连接后发起http请求,浏览器得到html代码;
4)、浏览器解析HTML代码,并请求HTML代码中的资源(如js, css,图片)
5)、浏览器对页面进行渲染页面给用户;
2简述浏览器渲染页面的过程
1)、基本流程:解析HTML以构建dom树 –> 构建render树 –>布局render树 —> 绘制render树。
(1) 、因此浏览器会解析HTML、svg、XHTML这三种文件生成一个Dom tree.
(2)、解析css产生一个规则树
(3)、js脚本,主要是通过DOM API和CSS API来操作DOM Tree和css Rule Tree。
补充:DOM Tree:浏览器将HTML解析成树形的数据结构。
CSS Rule Tree:浏览器将CSS解析成树形的数据结构。
Render Tree: DOM和CSSOM合并后生成Render Tree。
painting: 按照算出来的规则,通过显卡,把内容画到屏幕上。
根据以上的流程,可以知道,当cssdom还没构建完成时,页面是不会渲染到浏览器界面的,这也是为什么当css下载过慢时,会出现白屏的现象。
3TCP握手过程
连接开始时,连接建立方(Client)发送SYN包,并包含了自己的初始序号a;
连接接受方(Server)收到SYN包以后会回复一个SYN包,其中包含了对上一个a包
的回应信息ACK,回应的序号为下一个希望收到包的序号,即a+1,然后还包含
了自己的初始序号b;
连接建立方(Client)收到回应的SYN包以后,回复一个ACK包做响应,其中包含了
下一个希望收到包的序号即b+1。
TCP终止连接的四次握手过程如下:
首先进行关闭的一方(即发送第一个FIN)将执行主动关闭,而另一方(收到这
个FIN)执行被动关闭。
当服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一
样,一个FIN将占用一个序号。
同时TCP服务器还向应用程序(即丢弃服务器)传送一个文件结束符。接着这个
服务器程序就关闭它的连接,导致它的TCP端发送一个FIN。
客户必须发回一个确认,并将确认序号设置为收到序号加1。