1. .Net 原理
1.1. Asp.net 原理
下面是请求管道中的 19 个事件。
HttpContext:ecb → HttpWorkerRequest → HttpContext
HttpApplicationFactory. 获取了 HttpApplication 实例之后。
- BeginRequest: 开始处理请求
- AuthenticateRequest 授权验证请求,获取用户授权信息
- PostAuthenticateRequest 获取成功
- AunthorizeRequest 授权,一般来检查用户是否获得权限
- PostAuthorizeRequest: 获得授权
- ResolveRequestCache: 获取页面缓存结果
- PostResolveRequestCache 已获取缓存 当前请求映射到 MvcHandler(pr): 创建控制器工厂 ,创建控制器,调用 action 执行,view→response //action Handler : PR()
- PostMapRequestHandler 创建页面对象:创建 最终处理当前 http 请求的 Handler 实例: 第一从 HttpContext 中获取当前的 PR Handler ,Create
- PreAcquireRequestState 获取 Session
- PostAcquireRequestState 获得 Session
- PreRequestHandlerExecute:准备执行页面对象,执行页面对象的 ProcessRequest 方法
- PostRequestHandlerExecute 执行完页面对象了
- ReleaseRequestState 释放请求状态
- PostReleaseRequestState 已释放请求状态
- UpdateRequestCache 更新缓存
- PostUpdateRequestCache 已更新缓存
- LogRequest 日志记录
- PostLogRequest 已完成日志
- EndRequest 完成