HTTP运行时

来源:互联网 发布:mysql数据库搭建 编辑:程序博客网 时间:2024/05/16 09:04

一、HTTP请求上下文

1、HttpApplication对象

HttpApplication对象是根据global.asax文件派生的,能够处理转到特定虚拟文件夹的所有HTTP请求,HttpApplication对象取自对象池,每次只能处理一个HTTP请求。

global.asax文件位于应用程序的根目录下,通过该文件,Web应用程序能够处理某些HttpApplication事件。

2、HttpContext对象

HttpContext对象封装了ASP.NET要处理的HTTP请求的所有信息,它由HttpRuntime对象实例化,接着,该对象会经历请求生存期的各个阶段,在多个对象间进行传递。

HttpContext对象几乎包含了所有工具对象,通过HttpContext对象的属性可以获取HttpApplication对象、HttpRequest对象、HttpResponse对象Server对象、Session对象和Cache对象等,构成请求的上下文。

3、HttpResponse对象

ASP.NET中的HTTP响应信息由HttpResponse类进行封装,该类的实例创建于处理请求的HTTP管道建立时,之后该实例被链接到与请求关联的HttpContext对象,通过其Response属性暴露。

4、HttpRequest对象

HttpRequest对象包含了传入Web请求的HTTP数据包中包含的所有信息,HTTP标头、查询字符串、表单的输入字段、路径和URL信息的内容,都可以通过HttpRequest对象访问。当ASP.NET开始处理Web请求时,HttpRequest对象会被实例化并链接到请求关联的HttpContext对象,通过其Request属性暴露出来。

二、ASP.NET状态管理

HTTP协议的无状态性使得ASP.NET应用程序需要特殊的工具来达到状态管理的目的。ASP.NET提供了三个层面上的状态管理工具:应用程序、会话、页面。

1、应用程序状态——HttpApplicationState对象

HttpApplicationState对象是一个数据集合,当客户端首次请求某个虚拟目录中的资源时,HttpApplicationState类的实例会被创建,做为全局状态对象在各个用户间共享,通过HttpContext对象或Page对象的Application属性可以访问HttpApplicationState对象。

2、会话状态——HttpSessionState对象

HttpSessionState对象是一个数据集合,它不会像HttpApplicationState对象一样为同一虚拟目录下的所有用户共享,只有同一会话上下文中的请求才可以访问会话状态,通过HttpContext对象或Page对象的Session属性可以访问HttpSessionState对象。

3、页面状态——ViewState对象

ASP.NET页面提供了ViewState属性,使应用程序能够在同一页面的两次连续请求间保存某些数据,页面状态保存最近一次接受服务器处理以来的状态,并在下一次页面请求被处理时恢复。

原创粉丝点击