C#与.NET程序员面试宝典 2.1.4 面试题4:简述ASP.NET的页面运行机制
这道题目主要考察了应聘者是否真正了解ASP.NET的运行机制以及原理原理,本小节将介绍这方面的知识。
【出现频率】★★★★★
【关键考点】
HttpHandler
HttpModuls
【考题分析】
在深入学习ASP.NET之前,首先需要先了解一下ASP.NET的基本运行机制。请参考图2.1所示:
图2.1 ASP.NET的运行机制
(1)当第一次访问页面时,页面请求首先依次经过HttpModuls和HttpHandler的处理,服务器接收到HttpHandler的请求后将跳转到需要访问的页面,然后ASP.NET Engine负责找到这个页面后台的类,并实例化为一个临时对象,在此过程中会触发一系列的事件,其中一部分事件需要经过对象中的方法进行处理,之后服务器会将这个处理后页面移交给Response对象,然后由Response对象将这个页面发送到客户端。这就是第一条路线。
(2)因为服务器之间的会话已经建立,在服务器中的临时对象已经建立,所以在这个页面上重新提交一些信息并再次向服务器发送请求时,是不用再经过初始化页面这一部分工作的。故这第二条路线是依次提交HttpModuls、HttpHandler请求,然后直接与临时对象交互并返回的。
(3)第三条路线与第二条路线的不同之处在于,在处理请求时,如果涉及到需要调用ASP.NET Cache(既ASP.NET缓存),临时对象将直接从ASP.NET缓存提取信息并返回。
(4)第四条路线是在刷新页面的时候,服务器接收到并发现这个请求先前曾经处理过,并将处理结果存储到由一个默认的HttpModule管理的输出缓存中,那么此时就可以直接从这个缓存中提取信息并返回,而无需再重新处理一遍。
【答案】
当每次请求ASP.NET页面时,依据不同的情况浏览器、服务器、ASP.NET引擎之间将执行这四条路线中的一条路线,通过了解ASP.NET页面的内部运行机制,程序员可以在编写、调试代码的时候会更加游刃有余的。