往往不是只是懂得ASP.NET就足够了,前言:对ASP.NET网站进行优化的时候。优化的过程中,一般先是找,然后证明找出的问题就是要解决的问题,出问题可能存在地方。确认之后,进行一些措施。
构建高性能ASP.NET站点之一: 剖析页面的处置过程(前端)
让大家有个全面的了解,本篇主要剖析过程。下一篇就开始分步剖析了
本篇的议题如下:
1、剖析页面的解析过程
2、分析出可能存在优化点
3、剖析页面的解析过程
这里说的过程不是常说的ASP.NET页面的生命周期的过程,页面的解析过程。而且浏览器请求一个页面,然后浏览器呈现页面的过程。会先阐述页面的解析过程,本篇的文章中。显示从整体上阐述,然后在每一个点上提出优化的方法。先整体后局部。
当浏览器在请求一个Web页面是从URL开始的,下面就是过程描述:
1.输入URL地址或者点击URL一个链接,结合DNS解析出URL对应的IP地址;
2.浏览器根据URL地址;
3.发送HTTP请求;
4.开始连接请求的服务器并且请求相关的内容(至于请求时怎么被处理的这里暂时不讨论。只是后面的文章要讨论的问题);
5.浏览器解析从服务器端返回的内容。同时也继续进行其他请求。并且把页面显现进去。
浏览器就要知道这个URL对应的IP什么,当输入URL之后。只有知道了IP地址,浏览器才准备的把请求发送到指定的服务器的具体IP和端口号上面。浏览器的DNS解析器负责把URL解析为正确的IP地址。这个解析的工作是要花时间的,而且这个解析的时间段内。如果每次浏览器不是能从服务器那里下载到任何的东西的,但是这个解析的过程是可以优化的。
那么每次的请求都有一点的时间消耗,求一个URL都需要解析。可能这个时间消耗很短,但是性能的提升就是一点点的当再次请求相同的URL时,“调”进去的如果把对应URL和IP地址缓存起来。浏览器就不用去解析,而是直接读取缓存,这样势必会快一点。其实浏览器和操纵系统是提供了这样的支持的。浏览器就向服务器发送HTTP请求,当获得了IP地址之后。下面就稍微看下这个发送请求是怎么样被发送的?
1.浏览器通过发送一个TCP包,要求服务器打开连接;
2.服务器也通过发送一个包来应答客户端的浏览器。告诉浏览器连接开了;
3.浏览器发送一个HTTPGET请求,这个请求包括了很多的东西了。例如罕见的cooki和其他head头信息一个请求就算是发过去了这样,之后就是服务器的事情了。服务器端的顺序,请求发送去之后。例如,浏览器清楚的文件是一个ASP.NET页面,最后进行一系列的活动之后,那么服务器端就把请求通过IIS交给ASP.NET运行。当然,一般是以html形式发送到客户端。所谓的html文档,其实首先到达浏览器的就是html那些文档。就是地道的html代码,不包括什么图片,脚本css等的。也就是页面的html结构,因为此时返回的只是页面的html结构。这个html文档的发送到浏览器的时间是很短的,一般是占整个响应时间的10%左右。
那么页面的基本的骨架就在浏览器中了。下一步就是浏览器解析页面的过程,这样之后。也就是一步步从上到下解析html骨架了。
如果此时在html文档中遇到img标签,那么浏览器就会发送HTTP请求到这个img,响应的URL地址去获取图片,然后呈现出来。flash那么浏览器就会一个个的请求,如果在html文档中有很多的图片。