Httphandler,HttpModule学习笔记
2008-12-30 15:00
429 查看
1.Asp.Net页面请求流程(IIS5.X)
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/14/39e1bdcf2e44e567987972d77324c1ba.gif)
inetinfo.exe:监听Request并把Request分发到Work Process。
Http PipeLine:将Http请求发送给ASPNET_WP.EXE进程的管道。采用这个管道来通信是由于IIS在IntelInfo进程,和ASPNET_WP.EXE进程间的通信是同一台机器不用进程的通信。(ASPNET_WP.EXE进程是由ISAPI创建的。)
ASPNET_WP.EXE(Work Process):一台机器只有一个该进程,每一个基于虚拟目录的ASP.NET Application(网站)对应一个Application Domain,也就是说所有的Application都是运行在同一个Work Process上的。Application之间的隔离是通过Domain而不是通过Work Process进程。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/14/f6b436fd8b526680548e4fcbeeff9eec.gif)
HttpContext:体现当前Request的上下文信息,它的生命周期知道整个Request处理结束或者处理超时。通过HttpContext对象我们可以访问属于当前Request的一系列常用的对象:Server,Session,Cache,Application,Request,Response,Trace,User,Profile等等。此外我们可以认为将一些数据放在Items属性中作为状态管理的一种方式,不过这种状态管理和其他一些常用的方式,比如Session,Cache,Application,Cookie等,具有根本性的不同之处是其生命周期仅仅维持在当前Request的Context中。
HttpApplication:ASP.NET Application的体现,和global.asax对应,通过HttpApplicationFactory.GetApplicationInstance创建一个基于Gloabal.asax的HttpApplication对象。在创建这个对象之前,会调用InitInternal方法,该方法中有一个InitModules(),会创建config文件中注册的Modules,并且把这些Modules加载到HttpApplication的_moduleCollection Filed中。
2.HttpModule
HttpApplication本身并不提供对Request的处理功能,通过HttpModule封装一些功能模块,并将其注册到HttpApplication中来实现这些功能。
3.HttpHandler
定义了各种Type的请求的处理程序,比如下面这一段:
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" />
PageHandlerFactory是aspx文件的默认处理程序
<add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler" />
HttpForbiddenHandler是config文件的默认处理程序,HttpForbiddenHandler实现了当尝试访问映射到此处理程序的资源时,它会发出 HTTP 403 错误“禁止”。
参考:/article/1308586.html
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/14/39e1bdcf2e44e567987972d77324c1ba.gif)
inetinfo.exe:监听Request并把Request分发到Work Process。
Http PipeLine:将Http请求发送给ASPNET_WP.EXE进程的管道。采用这个管道来通信是由于IIS在IntelInfo进程,和ASPNET_WP.EXE进程间的通信是同一台机器不用进程的通信。(ASPNET_WP.EXE进程是由ISAPI创建的。)
ASPNET_WP.EXE(Work Process):一台机器只有一个该进程,每一个基于虚拟目录的ASP.NET Application(网站)对应一个Application Domain,也就是说所有的Application都是运行在同一个Work Process上的。Application之间的隔离是通过Domain而不是通过Work Process进程。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202003/14/f6b436fd8b526680548e4fcbeeff9eec.gif)
HttpContext:体现当前Request的上下文信息,它的生命周期知道整个Request处理结束或者处理超时。通过HttpContext对象我们可以访问属于当前Request的一系列常用的对象:Server,Session,Cache,Application,Request,Response,Trace,User,Profile等等。此外我们可以认为将一些数据放在Items属性中作为状态管理的一种方式,不过这种状态管理和其他一些常用的方式,比如Session,Cache,Application,Cookie等,具有根本性的不同之处是其生命周期仅仅维持在当前Request的Context中。
HttpApplication:ASP.NET Application的体现,和global.asax对应,通过HttpApplicationFactory.GetApplicationInstance创建一个基于Gloabal.asax的HttpApplication对象。在创建这个对象之前,会调用InitInternal方法,该方法中有一个InitModules(),会创建config文件中注册的Modules,并且把这些Modules加载到HttpApplication的_moduleCollection Filed中。
2.HttpModule
HttpApplication本身并不提供对Request的处理功能,通过HttpModule封装一些功能模块,并将其注册到HttpApplication中来实现这些功能。
3.HttpHandler
定义了各种Type的请求的处理程序,比如下面这一段:
<add verb="*" path="*.aspx" type="System.Web.UI.PageHandlerFactory" />
PageHandlerFactory是aspx文件的默认处理程序
<add verb="*" path="*.config" type="System.Web.HttpForbiddenHandler" />
HttpForbiddenHandler是config文件的默认处理程序,HttpForbiddenHandler实现了当尝试访问映射到此处理程序的资源时,它会发出 HTTP 403 错误“禁止”。
参考:/article/1308586.html
相关文章推荐
- HttpModule HttpHandler HttpHandlerFactory 学习笔记
- HttpModule和HttpHandler学习
- ASP.NET 学习笔记_06 Httphandler
- ASP.NET 中Http处理流程与 HttpModule,HttpHandler学习之初步认知
- 学习笔记---httpHandler处理程序
- Requests:Python HTTP Module学习笔记(二)(转)
- .net学习笔记---HttpHandle与HttpModule
- ASP.NET 中Http处理流程与 HttpModule,HttpHandler学习之初步认知
- Go圣经-学习笔记之http.Handler接口
- Android之okHttpClient+handler+LruCache缓存网络图片学习笔记(通用MVP模式)
- 菜鸟学习IHttpModule 接口笔记(一)
- Httphandle Httpmodule HttpHandler Factory 学习整理
- asp.net底层架构学习笔记(IIS5/6/7处理模型,HttpRuntime,HttpContext,HttpApplication,HttpModel,HttpHandler...)
- PHP学习笔记三十七【http】
- 【安全牛学习笔记】http协议基础
- HttpHandler与HttpModule的用处与区别
- Android Handler学习笔记
- 二、IIS6.0和7.0区别以及自定义HttpModule、HttpHandler注册
- httpModule HttpHandler
- angular2 学习笔记 ( Http 请求)