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。