httpHandlers处理程序和httpModules模块,其实是分别实现了IHttpHandler和IHttpModule的接口,都是为了扩展web应用程序。
 
    IHttpHandler接口定义了IsReusable属性和 Proce***equest(HttpContext context)方法;IHttpModule接口定义了Dispose()和Init(HttpApplication context)方法体成员。当然处理程序没这么简单,可以通过事件委托来解决相应的问题。
 
    HttpHandlers和 HttpModules都是在web.config或machine.config文件中配置。
 
    HttpHandlers主要是在客户请求时,不需要展现页面,直接链接到一些应用程序返回相应的结果给客户就行。另外可以自定义一些扩展名文件,当执行到此文件时(扩展名)时,便调用相应应的解析程序,例如:在httpHandlers节点中就配置有(.asmx)的扩展名文件,意思就是在站点执行到有*.asmx文件时就条用集成在.NET类库中的HttpHanlers程序解析此扩展名的文件。
 
    HttpModules则是注册到整个站点页面的响应机制,在所有页面呈现时对页面进行一些规则描述,常见的应用如Session或cookies的验证,因为如果一个很庞大的站点,里边有上千个甚至更多的页面,当用户登录后,Session验证就需要在每一页调用,不仅浪费资源,而且增加了服务器的负担,这时HttpModules模块就发挥作用了。因为在定义的IHttpModule接口中实现了如BeginRequest和EndRequest等事件机制,在每一页加载Page_Load前,会自动调用此模块进行验证,方便而强大。