来源 :http://book.51cto.com/art/201008/215819.htm
当一个HTTP向服务器请求并被IIS接收后,首先,IIS检查客户端请求的页面类型,并为其加载相应的dll文件,然后,在处理过程中将这条请求 发送给能够处理这个请求的模块。在ASP.NET中,这个模块叫做HttpHandler(HTTP处理程序组件),之所以aspx文件可以被服务器处 理,就是因为在服务器端有默认的HttpHandler专门处理aspx文件。
IIS将这条请求发送给能够处理这个请求的模块之前,还需要经过一些HttpModule的处理,这些都是系统默认的Modules(用于获取当前 应用程序的模块集合)。HTTP请求传到HttpHandler之前要经过不同的HttpModuls处理有4个好处,一是为了一些必需的过程;二是为了 安全性;三是为了提高效率;四是为了用户能够在更多的环节上进行控制,增强了用户的控制能力。
ASP.NET运行原理如图1.1所示。
HttpModule模块是一个组件,可以注册为ASP.NET请求生命周期的一部分,当处理该组件时,该组件可以读取或更改请求或响应。HttpModule模块通常用于执行需要监视每个请求的特殊任务,如安全或站点统计信息。