Web页面的解析过程

博文转自:http://hi.baidu.com/moniteryao/item/e851425177262ba8adc8577fcss

http://sd.csdn.net/a/20110212/291687.htmlhtml

页面的解析过程,这里说的过程不是咱们常说的ASP.NET页面的生命周期的过程,并且浏览器请求一个页面,而后浏览器呈现页面的过程。数据库

在本篇的文章中,我会先阐述页面的解析过程,显示从总体上阐述,而后在每个点上提出优化的方法。先总体,后局部。浏览器

当浏览器在请求一个Web页面是从URL开始的。下面就是过程描述:缓存

1. 输入URL地址或者点击URL的一个连接。服务器

2. 浏览器根据URL地址,结合DNS,解析出URL对应的IP地址。cookie

3. 发送HTTP请求。tcp

4. 开始链接请求的服务器而且请求相关的内容(至于请求时怎么被处理的,咱们这里暂时不讨论,只是后面的文章要讨论的问题)。ide

5. 浏览器解析从服务器端返回的内容,而且把页面显现出来,同时也继续进行其余的请求。性能

上面基本上就是一个页面被请求到现实的过程。下面咱们就开始剖析这个过程。

当输入URL以后,浏览器就要知道这个URL对应的IP是什么,只有知道了IP地址,浏览器才能准备的把请求发送到指定的服务器的具体IP和端口号上面。

浏 览器的DNS解析器负责把URL解析为正确的IP地址。这个解析的工做是要花时间的,并且这个解析的时间段内,浏览器不是能从服务器那里下载到任何的东西 的。可是这个解析的过程是能够优化的。试想,若是每次浏览器每次请求一个URL都须要解析,那么每次的请求都有一点的时间消耗,可能这个时间消耗很短,但 是性能的提高就是一点点的“调”出来的。若是把对应URL和IP地址缓存起来,那么当再次请求相同的URL时,浏览器就不用去解析,而是直接读取缓存,这 样势必会快一点。

其实浏览器和操纵系统是提供了这样的支持的。

当得到了IP地址以后,那么浏览器就向服务器发送HTTP的请求,下面咱们就稍微看下这个发送请求是怎么样被发送的:

1.    浏览器经过发送一个TCP的包,要求服务器打开链接。

2.    服务器也经过发送一个包来应答客户端的浏览器,告诉浏览器链接开了。

3.    浏览器发送一个HTTP的GET请求,这个请求包含了不少的东西了,例如咱们常见的cookie和其余的head头信息。

这样,一个请求就算是发过去了。

请求发送去以后,以后就是服务器的事情了,服务器端的程序,例如,浏览器清楚的文件是一个ASP.NET的页面,那么服务器端就把请求经过IIS交给ASP.NET 运行时,最后进行一系列的活动以后,把最后的结果,固然,通常是以是以html的形式发送到客户端。

其 实首先到达浏览器的就是html的那些文档,所谓的html的文档,就是纯粹的html代码,不包含什么图片,脚本,css等的。也就是页面的html结 构。由于此时返回的只是页面的html结构。这个html文档的发送到浏览器的时间是很短的,通常是占整个响应时间的10%左右。

这样以后,那么页面的基本的骨架就在浏览器中了,下一步就是浏览器解析页面的过程,也就是一步步从上到下的解析html的骨架了。

若是此时在html文档中,遇到了img标签,那么浏览器就会发送HTTP请求到这个img响应的URL地址去获取图片,而后呈现出来。若是在html文档中有不少的图片,flash,那么浏览器就会一个个的请求,而后呈现。

到 这里,你们也许感受到这种方式有点慢了。确实这个图片等资源文件的请求的部分也是能够优化的。暂不说别的,若是每一个图片都要请求,那么就要进行以前说的那 些步骤:解析url,打开tcp链接等等。开链接也是要消耗资源的,就像咱们在进行数据库访问同样,咱们也是尽量的少开数据库链接,多用链接池中的连 接。道理同样,tcp链接也是能够重用的。

相关文章
相关标签/搜索