Asp.net 的页面处理过程
Asp.net 的页面处理过程:
下面通过一个更加详细的图形来描述aspnet_isapi.dll处理页面的一个流程:
请求的处理过程是基于管道模型的。
我们通过下图来理解什么管道模型:
其实就是可以有多个HttpModule,但是只能有一个HttpHandler。
1.1.3 Isapi筛选器
Iis默认不会处理动态页面,只能处理html页面,于是就需要对iis进行扩展,这些扩展要注册到iis中,和特定的后缀名绑定,这样以后每当iis遇到了某个后缀名,就把他发送给响应的扩展来处理,这些筛选器处理完之后,把结果返回给iis,iis就把这个结果返回给客户。比如对于asp,就要用asp_isapi.dll来处理,对于asp.net就要使用aspnet_isapi.dll来处理。扩展的方法有两种:ISAPI Filter和 ISAPI Extension两种。其中HttpModule就是筛选器;HttpHandler就是Http Extension。
1.1.4 HttpModule
Httpmodule实现了过滤器也就是筛选器的功能;HttpModule 实现了System.Web.IHttpModule的接口。
in MyHttpModule BeginRequest Event Handler
in MyHttpModule
AuthenticateRequest Event Handler
in MyHttpModule AuthorizeRequest Event
Handler
in MyHttpModule ResolveRequestCache Event Handler
in
MyHttpModule AcquireRequestState Event Handler
in MyHttpModule
PreRequestHandlerExecute Event Handler
in MyHttpModule PostRequestHandlerExecute
Event Handler
in MyHttpModule ReleaseRequestState Event Handler
in
MyHttpModule UpdateRequestCache Event Handler
in MyHttpModule EndRequest
Event Handler