软件下载 | 资讯教程 | 最近更新 | 下载排行 | 一键转帖 | 发布投稿
您的位置:最火下载站 > 网络编程 > ASP.NET > ASP.NET学习总结:如何处理HTTP请求?

ASP.NET学习总结:如何处理HTTP请求?

点击看大图
点击看大图

  XXX

  为每个请求创建该类(HttpRuntime)的一个实例,实例化时,HttpRuntime类执行许多初始化任务,其中的首要任务是创建一个包装器对象,以封装有关该请求的所有HTTP特有的信息。然后将新建的对象(HttpContext类的一个实例)传递给该管道,并被各模块用来访问内在的工作对象(通过HttpContext的属性暴露出来),如:Request,Response,Session,和Server. 当创建 HttpContext 对象之后,HttpRuntime 会紧接着取得一个 HttpApplication 对象来启动应用程序创建 HttpApplication 的实例时,将同时创建所有已配置的模块。例如,如果将应用程序这样配置,ASP.NET 就会创建一个 SessionStateModule 模块。创建了所有已配置的模块之后,将调用HttpApplication 类的 Init 方法。(通过将 HttpContext 对象传递给处理程序(实现了IHttpHandler接口)的 ProcessRequest 方法,开始了请求的处理工作,具体经历的过程如下:)

  在处理该请求时将由 HttpApplication 类执行以下事件。希望扩展 HttpApplication 类的开发人员尤其需要注意这些事件。

  1. 对请求进行验证,将检查浏览器发送的信息,并确定其是否包含潜在恶意标记。如果已在 Web.config 文件的 UrlMappingsSection 节中配置了任何 URL,则执行 URL 映射。

  2. 引发 BeginRequest 事件。

  3. 引发 AuthenticateRequest 事件。

  4. 引发 PostAuthenticateRequest 事件。

  5. 引发 AuthorizeRequest 事件。

  6. 引发 PostAuthorizeRequest 事件。

  7. 引发 ResolveRequestCache 事件。

  8. 引发 PostResolveRequestCache 事件。

  9. 根据所请求资源的文件扩展名(在应用程序的配置文件中映射),选择实现 IHttpHandler 的类,对请求进行处理。如果该请求针对从 Page 类派生的对象(页),并且需要对该页进行编译,则 ASP.NET 会在创建该页的实例之前对其进行编译。

  10. 引发 PostMapRequestHandler 事件。

  11. 引发 AcquireRequestState 事件。

  12. 引发 PostAcquireRequestState 事件。

  13. 引发 PreRequestHandlerExecute 事件。

  14. 为该请求调用合适的 IHttpHandler 类的 ProcessRequest 方法(或异步版 BeginProcessRequest)。例如,如果该请求针对某页,则当前的页实例将处理该请求。

  15. 引发 PostRequestHandlerExecute 事件。

  16. 引发 ReleaseRequestState 事件。

  17. 引发 PostReleaseRequestState 事件。

  18. 如果定义了 Filter 属性,则执行响应筛选。

  19. 引发 UpdateRequestCache 事件。

  20. 引发 PostUpdateRequestCache 事件。

  21. 引发 EndRequest 事件。

相关阅读
网友评论
栏目导航
推荐软件