客户通过客户端浏览器输入url地址请求资源,服务器接收到客户端请求,首先为http请求分配应用程序池,然后在应用程序池中创建请求需要的管道,这个管道对http请求的各个步骤进行了分配。
当用户第一次请求页面时,在请求管道中经过了身份验证等模块的一系列操作后,它会被映射处理程序处理,发现要请求的是.aspx页面,这时请求将转交给Asp.net引擎执行也就是我们上图的步骤2。Asp.net页面分为前台.aspx文件和后台.cs文件,Asp.net引擎会将前台文件和后台文件合并生成一个页面(Page)类,然后再由编译器将该页面类编译成为程序集,再由程序集生成静态HTML页面,然后将HTML文件返回给映射处理程序,并将静态HTML页面返回给客户端浏览器解释运行。
当用户第二次请求该页面时,直接调用编译好的程序集即可,从而大大提高打开页面的速度。正因为如此,我们才会发现当用户第一次打开该页面时速度会很慢,但是以后再打开该页面速度会很快的原因。