ASP.NET framework的处理方法

开发 后端
本文介绍ASP.NET framework的处理方法,当这个HTTP请求进入ASPNET_WP.EXE进程之后,ASP.NET framework就会通过HttpRuntime来处理这个Http请求,处理完毕后将结果返回给客户端。

在以前的ASP时候,当请求一个*.asp页面文件的时候,这个HTTP请求首先会被一个名为inetinfo.exe进程所截获,这个进程实际上就是www服务。截获之后它会将这个请求转交给asp.dll进程,这个进程就会解释这个asp页面,然后将解释后的数据流返回给客户端浏览器。其实 ASP.DLL是一个依附在IIS的ISAPI文件,它负责了对诸如ASP文件,ASA等文件的解释执行。

ASP.NET framework处理方法

当客户端向web服务器请求一个*.aspx的页面文件时,同asp类似,这个http请求也会被inetinfo.exe进程截获(www服务),它判断文件后缀之后,把这个请求转交给ASP.NET_ISAPI.DLL而ASPNET_ISAPI.DLL则会通过一个Http PipeLine的管道,将这个http请求发送给ASP.NET_WP.EXE进程,当这个HTTP请求进入ASPNET_WP.EXE进程之后,ASP.NET framework就会通过HttpRuntime来处理这个Http请求,处理完毕后将结果返回给客户端。

当一个http请求被送入到HttpRuntime之后,这个Http请求会继续被送入到一个被称之为HttpApplication Factory的一个容器当中,而这个容器会给出一个HttpApplication实例来处理传递进来的http请求,而后这个Http请求会依次进入到如下几个容器中:

HttpModule --> HttpHandler Factory --> HttpHandler
当系统内部的HttpHandler的ProcessRequest方法处理完毕之后,整个Http Request就被处理完成了,客户端也就得到相应的东东了。

完整的http请求在ASP.NET framework中的处理流程:
HttpRequest-->inetinfo.exe->ASPNET_ISAPI.DLL-->Http Pipeline-->ASPNET_WP.EXE-->HttpRuntime-->HttpApplication Factory-->HttpApplication-->HttpModule-->HttpHandler Factory-->HttpHandler-->HttpHandler.ProcessRequest()

如果想在中途截获一个httpRequest并做些自己的处理,就应该在HttpRuntime运行时内部来做到这一点,确切的说时在HttpModule这个容器中做到这个的。

系统本身的HttpModule实现一个IHttpModule的接口,当然我们自己的类也能够实现IHttpModule接口,这就可以替代系统的HttpModule对象了。

【编辑推荐】

  1. 介绍ASP.NET MVC的实现
  2. 如何从ASP.NET 2.0中发送电子邮件
  3. 浅谈ASP.NET应用
  4. ASP.NET中的ViewState本质
  5. 安装ASP.NET AJAX的过程
责任编辑:佚名 来源: 清华大学出版社
相关推荐

2009-07-20 16:12:21

ASP.NET Fra

2009-07-23 16:28:55

2009-07-28 13:26:34

Render方法ASP.NET

2009-07-22 09:11:02

Action方法ASP.NET MVC

2010-05-06 13:33:47

Asp.Net负载均衡

2009-08-05 16:04:50

2009-02-06 14:11:36

ASP.NET.NET全局异常处理

2009-07-22 17:45:35

ASP.NET教程

2009-07-21 09:43:36

调用UpdatePanASP.NET

2009-08-05 14:27:55

ASP.NET模板基本

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-07-23 15:11:43

XML Web服务方法ASP.NET

2009-07-27 13:25:15

Postback程序处ASP.NET

2011-04-13 15:18:10

.htmHTTP请求处理

2009-07-20 16:14:39

ASP.NET运行时

2009-06-19 16:20:14

ASP.NET错误处理

2011-06-08 11:36:16

ASP.NETrender

2009-07-24 16:05:05

调用Web ServiASP.NET

2009-08-04 17:28:45

Apache支持ASP
点赞
收藏

51CTO技术栈公众号