• ASP.NET的必须知道的东东(HttpModule,HttpHandler)之一


    asp.net架构

    一 asp.net请求的处理过程
    -------------------
    HttpModule  必须要掌握的东西
    HttpHandler 必须要掌握的东西,非常有用
    以上两个的实例
    ---------------------
    asp.net 事件模型机制

    -----------------------

    客户的请求页面由aspnet_isapi.dll这个动态连接库来处理,把请求的aspx文件发送给CLR进行编译执行,然后把Html流返回给浏览器
    --------------------------
    二 页面事件
    执行顺序
    Page_Init:初始化值或连接
    Page_Load:主要使用IsPostBack,该事件主要执行一系列得操作来首次创建asp.net页面或响应
    由投递引起得客户端事件。在此事件之前,已还原页面和控件视图状态。
    Page_DataBind:在页面级别上调用,也可在单个控件中调用。
    DataBind_PreRender:数据绑定预呈现,恰好在保存视图状态和呈现控件之前激发此事件。
    Page_Unload:此事件是执行最终清理工作的。
    非确定事件
    Page_Error:如果在页面处理过程中出现未处理的例外,则激发error事件。
    Page_AbortTransaction:交易事件,事务处理中如果已终止交易,则激发此事件,购物车常用。
    Page_CommitTransaction:如果已成功交易,则激发此事件。
    --------------------------------------------------------
    Global.asax中的事件(执行顺序)
    Application_Start:应用程序启动时激发
    Application_BeginRquest:http请求开始时激发
    Application_AuthenticateRequest:  应用程序批准http请求时激发
    Session_Start: 会话启动时激发
    Application_EndRequest:Htttp请求结束时激发
    Session_End:会话结束时激发
    Application_End:应用程序结束时激发
    Application_Error: 发生错误时激发
    ----------------------
    ISAPI: 向web服务器插入某些组建,扩展功能,增强web服务器功能。
    ISAPI: 扩展,win32的动态链接库,譬如aspnet_isapi.dll,可以把ISAPI扩展看作是一个普通的应用程序,它处理的目标是HTTP请求。
    ISAPI: 过滤器,web服务器把请求传递给相关的过滤器,接下来过滤器可能修改请求,执行某些操作等等。
    ASP.NET请求的处理过程:
    基于管道模型,在模型中ASP.NET把http请求传递给管道中所有的模块。每个模块都接收HTTP请求,并有完全的控制权。一旦请求经过了所有的HTTP模块,最终被HTTP处理程序处理。HTTP处理程序对请求进行一些处理,并且结果将再次经过模块管道中的HTTP模块。
    -----------
    httpmodule
    ISAPI过滤器(筛选器):IIS本身是不支持动态页面的,也就是说他仅仅支持静态HTML页面的内容,对于.asp .aspx .cgi .php等,IIS并不知道如果处理这些后缀标记,它就会把它当作文本,丝毫不做处理发送到客户端。为了解决这个问题,IIS有一种机制,叫做ISAPI的过滤器。它是一个COM组件。
    ASP.NET服务在注册到IIS的时候,会把每个扩展可以处理的文件扩展名注册到IIS里面(如*.ascx *.aspx等)。扩展启动后,就根据定义好的方式来处理IIS所不能处理的文件,然后把控制权跳转到专门处理代码的进程中,asp.net中是aspnet_isapi.dll。让这个进程开始处理代码,生成标准的HTML代码,生成后把这些代码加入到原有的HTML中,最后把完整的HTML返回给IIS,IIS再把内容发送到客户端。
    ----------------
    HttpModule
    Http模块实现了过滤器(ISAPI filter)的功能,它是实现了System.Web.IHttpModule接口的.net组件。。这些组件通过在某些事件中注册自身,把自己插入到ASP.NET请求处理管道。当这些事件发生的时候,ASP.NET调用对请求有兴趣的HTTP模块,这样该模块就能处理请求了。有时候需要过虑一下http请求,注意它不是覆盖其他的包括系统自带的HttpModule,在Machine.config中配置完成。
    --------------------------------------
    HttpHandler
    它实现了ISAPI Extention的功能,它处理请求(Request)的信息和发送响应(Response)。HttpHandler功能的通过必须实现IHttpHandler接口。HTTP处理程序是实现System.Web.IHttpHandler接口的.NET组件。任何实现了该接口的类都可以用于处理输入的Http请求。它就是Http处理程序。

  • 相关阅读:
    iOS sqlite3
    NSObject常用方法
    驱动项目设置中混淆点小记
    globalsign代码签名最新步骤
    Web学习资源及手册查询整理
    H5基于iScroll实现下拉刷新,上拉加载更多
    移动端meta标签
    一、开发过程中遇到的js知识点总结(1)
    vue API 知识点(4) --- 指令、特殊 attribute 、内置组件
    vue API 知识点(3) --- 实例 总结
  • 原文地址:https://www.cnblogs.com/huoxingren/p/648648.html
Copyright © 2020-2023  润新知