zoukankan      html  css  js  c++  java
  • 【笔记】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处理生命周期图

  • 相关阅读:
    AttributeError: 'DatabaseFeatures' object has no attribute 'autocommits_when_autocommit_is_off'
    mac 添加adb环境变量
    ios环境搭建
    接口自动化测试平台介绍
    听风系统介绍
    nginx启动报错整理
    Mongodb: Sort operation used more than the maximum 33554432 bytes of RAM
    Mac上python 在终端使用pip3安装包报ConnectTimeoutError错误
    crontab -让服务器执行定时任务
    koajs项目之memcached实现session共享
  • 原文地址:https://www.cnblogs.com/wycm/p/5338904.html
Copyright © 2011-2022 走看看