首页 > 代码库 > ASP.NET 管道事件与HttpModule, HttpHandler简单理解

ASP.NET 管道事件与HttpModule, HttpHandler简单理解

BeginRequest指示请求处理开始
AuthenticateRequest封装请求身份验证过程
AuthorizeRequest封装检查是否能利用以前缓存的输出页面处理请求的过程
ResolveRequestCache从缓存中得到相应时候触发
AcquireRequestState加载初始化Session时候触发
PreRequestHandlerExecute在Http请求进入HttpHandler之前触发
PostRequestHandlerExecute在Http请求进入HttpHandler之后触发
ReleaseRequestState存储Session状态时候触发
UpdateRequestCache更新缓存信息时触发
EndRequest在Http请求处理完成的时候触发
PreSendRequestHenaders在向客户端发送Header之前触发
PreSendRequestConternt在向客户端发送内容之前触发

 

技术分享

名称

描述

BeginRequest

HTTP管道开始处理请求时,会触发BeginRequest事件

AuthenticateRequest,PostAuthenticateRequest

ASP.NET先后触发这两个事件,使安全模块对请求进行身份验证

AuthorizeRequest,PostAuthorizeRequest

ASP.NET先后触发这两个事件,使安全模块对请求进程授权

ResolveRequestCache,PostResolveRequestCache

ASP.NET先后触发这两个事件,以使缓存模块利用缓存的直接对请求直接进程响应(缓存模块可以将响应内容进程缓存,对于后续的请求,直接将缓存的内容返回,从而提高响应能力)。

PostMapRequestHandler

对于访问不同的资源类型,ASP.NET具有不同的HttpHandler对其进程处理。对于每个请求,ASP.NET会通过扩展名选择匹配相应的HttpHandler类型,成功匹配后,该实现被触发

AcquireRequestState,PostAcquireRequestState

ASP.NET先后触发这两个事件,使状态管理模块获取基于当前请求相应的状态,比如SessionState

PreRequestHandlerExecute,PostRequestHandlerExecute

ASP.NET最终通过一请求资源类型相对应的HttpHandler实现对请求的处理,在实行HttpHandler前后,这两个实现被先后触发

ReleaseRequestState,PostReleaseRequestState

ASP.NET先后触发这两个事件,使状态管理模块释放基于当前请求相应的状态

UpdateRequestCache,PostUpdateRequestCache

ASP.NET先后触发这两个事件,以使缓存模块将HttpHandler处理请求得到的相应保存到输出缓存中

LogRequest,PostLogRequest

ASP.NET先后触发这两个事件为当前请求进程日志记录

EndRequest

整个请求处理完成后,EndRequest事件被触发

参考原文:http://blog.csdn.net/sundacheng1989/article/details/9995263

ASP.NET 管道事件与HttpModule, HttpHandler简单理解