Asp.net基础学习--HttpApplication、HttpRuntime和HttpContext认识

众所周知,浏览器端发送请求,一般而已(针对IIS服务器,OWIN等情况下不知道)都是由IIS服务器监听到请求,然后交由IIS服务器处理,之后通过ISAPI联通asp.net管道(托管).,在ASP.NET管道处理结束,再交由IIS处理打包,最后返回给客户端。asp.net大致就是这么一个流程,其中ISAPI就是联通非托管和托管的桥梁(也就是沟通IIS和asp.net)。

当从IIS中进入asp.net时,加载运行时,之后会通过AppDomainFactory为该Web应用创建一个应用程序域(AppDomain),随后,一个特殊的运行时IsapiRuntime被加载。IsapiRuntime定义在程序集System.Web中,对应的命名空间为System.Web.Hosting。IsapiRuntime会接管该HTTP请求。随后,首先创建一个IsapiWorkerRequest对象,用于封装当前的HTTP请求。并将该IsapiWorkerRequest对象传递给ASP.NET运行时:HttpRuntime,从此时起,HTTP请求正式进入了ASP.NET管道。根据IsapiWorkerRequest对象,HttpRuntime会创建用于表示当前HTTP请求的上下文(Context)对象:HttpContext。

随着HttpContext被成功创建,HttpRuntime会利用HttpApplicationFactory创建新的或者获取现有的HttpApplication对象。

每一个HttpApplication对象每一次仅仅处理一个请求,在HttpApplication中利用.net的事件机制,分解为多个步骤。(HttpApplication实例是由asp.net运行时调用函数创建的,程序员只能通过处理管道中的事件来影响处理过程).

对于HttpContext:

HttpContext基于HttpApplication的处理管道(asp.net定义HttpContext类型来统一处理参数的表示问题),由于HttpContex对象贯穿整个处理过程,所以,可以从HttpApplication处理管道的前端将状态数据传递到管道的后端,完成状态的传递任务。

HttpContex生命周期:从服务器接收的HTTP请求开始到反应发送回客户端结束。也就是从客户端用户点击并产生了一个向服务器发送请求开始---服务器处理完请求并生成返回到客户端为止。针对每个不同用户的请求,服务器都会创建一个新的HttpContext实例直到请求结束,服务器销毁这个实例。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值