现在的位置: 首页 > 综合 > 正文

[转]IHttpModule与IHttpHandler的区别

2012年12月11日 ⁄ 综合 ⁄ 共 565字 ⁄ 字号 评论关闭

基本的区别有下面几点。不过光看这个可能不明白,应该理解整个HttpModule的生命周期

 

1、先后次序.先IHttpModule,后IHttpHandler. 注:Module要看你响应了哪个事件,一些事件是在Handler之前运行的,一些是在Handler之后运行的
2、对请求的处理上:
      IHttpModule是属于大小通吃类型,无论客户端请求的是什么文件,都会调用到它;例如aspx,rar,html的请求.
      IHttpHandler则属于挑食类型,只有ASP.net注册过的文件类型(例如aspx,asmx等等)才会轮到调用它.
3、IHttpHandler按照你的请求生成响应的内容,IHttpModule对请求进行预处理,如验证、修改、过滤等等,同时也可以对响应进行处理    HttpHandler是HTTP请求的处理中心,真正地对客户端请求的服务器页面做出编译和执行,并将处理过后的信息附加在HTTP请求信息流中再次返回到HttpModule中。
4、HttpHandler与HttpModule不同,一旦定义了自己的HttpHandler类,那么它对系统的HttpHandler的关系将是“覆盖”关系。

 

我的理解:HttpModule是为HttpHandler服务的,真正的处理在HttpHandler上。

抱歉!评论已关闭.