【笔记】HttpHandler与HttpMoudle

HttpHandler

所有实现IHttpHandler接口的类型,例:
1. aspx 页面
2. asmx 服务文件
3. ashx (一般处理程序)
4. 实现IHttpHandler接口的自定义类型

功能

生成响应结果,对用户的请求进行处理
可通过web.config配置路径匹配,响应一类结果 (system.webserver -> handler)

HttpMoudle

所有实现IHttpMoudle 接口类型

功能

负责监听HttpRequest,同时对HttpRequest增添或者过滤掉一部分内容
通用性功能,尤其是与响应内容无关的处理
1. 修改请求 修改响应头部
2. 检查请求 身份验证

通过web.config配置节点 拦截所有请求类型(system.webserver -> moudler)

具体操作

  1. 实现IHttpMoudle接口 Init方法,对传入的HttpApplication对象进行注册事件,在不同事件执行对应方法。
  2. Moudle里可以通过HttpApplication对象的CompleteRequest()方法终止请求,直接跳到EndRequest事件中 (注:当配置文件中配置了多个Moudle,前面的Moulde中调用CompleteRequest()方法,之后的HttpMoulde 的EndRequest及之后的事件也会执行)

拓展

在请求的处理过程中, HttpApplication对象主要扮演着控制管线处理流程的作用, 它负责推进整个处理流程, 除了在不同阶段引发不同的事件外( 供HttpModule
使用) , HttpApplication对象还会根据当前请求寻找一个合适的IHttpHandlerFactory实例, 并最终得到一个IHttpHandler的实例用于处理请求

设计这三种类型的目 的在于:
1. HttpApplication控制处理流程, 在不同阶段引发不同的事件。
2. 由于请求的多样性, 每个请求会由一个HttpHandler对象来处理。
3. 对于一些通用性的功能, 尤其是与响应内容无关的, 设计成HttpModule是最合适的。

Http Request处理生命周期图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值