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

本文详细介绍了ASP.NET处理HTTP请求的各个阶段,包括BeginRequest、AuthenticateRequest等关键事件,揭示了ASP.NET应用程序的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/sundacheng1989/article/details/9995263

转载于:https://www.cnblogs.com/ecollab/p/6135797.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值