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处理程序。

你可能感兴趣的:(application,asp.net,扩展,web服务,IIS,HttpModule)