【ASP.NET】管道模型
2017-10-24 12:52
369 查看
转 http://blog.csdn.net/qq_26545305/article/details/70214912
众所周知,我们在使用ASP.NET创建web项目时,会选择ASP.NET WebForm,或ASP.NET MVC 。而他们都是基于ASP.Net 管道模型的,换句话说,管道模型是整个asp.net的核心。如下图所示:
一、管道对象模型
在System.Web的命名空间中处理HTTP请求主要使用管道模型。管道模型如下图所示。在管道模型开始运行前,首先HTTP的请求被传到HttpRuntime类的一个实例中,然后这个实例对象检查请求并找到被接受的那个应用程序。接下来,管道模型就使用HttpApplicationFactory对象来创建一个HttpApplication对象来处理这个请求,一个HttpApplication可以包含一系列HTTP module对象。其中最重要的就是HttpModule和HttpHandler。
HttpModule,可以看做是一个拦截器,给我们在特定的事件处理请求的机会。HttpModule有很多应用,例如,我们要在每个请求的页面事件前加载Session数据,那么就用到SessionModule等等;asp.net4.0提供了路由机制也是建立在一个UrlRouteModule上面的,它在请求映射到具体程序前拦截,然后重新映射。MVC又是建立在路由机制的基础上的。
HttpHandler,可以看做一个处理器,它负责处理请求,输出数据。aspx,ashx或者说实现了IHttpHandler的都是HttpHandler。
管道模型使用一个HttpContext对象去描述声明request/response信息。这个对象在HttpApplication和handler之间来回传递。HttpContext对象通过属性来描述request和response信息。下图展示了部分HttpContext类常用的属性。
二、19个标准事件
三、总结
MVC URLRouting Module对进入server的request进行了拦截,然后对request的handlerjinxingltes的处理。asp.net WebForm和asp.net MVC两者的不同,是在于最终使用的IHttpHandle的不同。WebForm中使用的是Page这个Handler,MVC中使用的是MVCHander。
关于这一块的知识,还有很多不懂得地方,欢迎大神前来指教~~~
众所周知,我们在使用ASP.NET创建web项目时,会选择ASP.NET WebForm,或ASP.NET MVC 。而他们都是基于ASP.Net 管道模型的,换句话说,管道模型是整个asp.net的核心。如下图所示:
一、管道对象模型
在System.Web的命名空间中处理HTTP请求主要使用管道模型。管道模型如下图所示。在管道模型开始运行前,首先HTTP的请求被传到HttpRuntime类的一个实例中,然后这个实例对象检查请求并找到被接受的那个应用程序。接下来,管道模型就使用HttpApplicationFactory对象来创建一个HttpApplication对象来处理这个请求,一个HttpApplication可以包含一系列HTTP module对象。其中最重要的就是HttpModule和HttpHandler。
HttpModule,可以看做是一个拦截器,给我们在特定的事件处理请求的机会。HttpModule有很多应用,例如,我们要在每个请求的页面事件前加载Session数据,那么就用到SessionModule等等;asp.net4.0提供了路由机制也是建立在一个UrlRouteModule上面的,它在请求映射到具体程序前拦截,然后重新映射。MVC又是建立在路由机制的基础上的。
HttpHandler,可以看做一个处理器,它负责处理请求,输出数据。aspx,ashx或者说实现了IHttpHandler的都是HttpHandler。
管道模型使用一个HttpContext对象去描述声明request/response信息。这个对象在HttpApplication和handler之间来回传递。HttpContext对象通过属性来描述request和response信息。下图展示了部分HttpContext类常用的属性。
二、19个标准事件
三、总结
MVC URLRouting Module对进入server的request进行了拦截,然后对request的handlerjinxingltes的处理。asp.net WebForm和asp.net MVC两者的不同,是在于最终使用的IHttpHandle的不同。WebForm中使用的是Page这个Handler,MVC中使用的是MVCHander。
关于这一块的知识,还有很多不懂得地方,欢迎大神前来指教~~~
相关文章推荐
- 用.Net Core控制台模拟一个ASP.Net Core的管道模型
- Asp.net管道模型(管线模型)
- 用.Net Core控制台模拟一个ASP.Net Core的管道模型
- 学习篇:asp.net mvc 管道模型
- 转:ASP.NET使用管道模型(PipleLines)处理HTTP请求
- Owin管道与asp.net管道模型
- asp.net 管道模型+生命处理周期
- ASP.NET使用管道模型(PipleLines)处理HTTP请求
- ASP.NET使用管道模型(PipleLines)处理HTTP请求
- ASP.NET Web API 管道模型
- Asp.net管道模型(管线模型)之一发不可收拾
- ASP.NET管道模型
- ASP.NET Web API 管道模型
- asp.net管道模型
- Asp.net管道模型(管线模型)
- ASP.NET 管道模型
- ASP.NET Web API 管道模型
- Asp.net管道模型(管线模型)
- ASP.NET Core轻松入门之Middleware管道模型
- ASP.NET Core轻松入门之Middleware管道模型