.平台处理HTTP请求的过程大致如下:1、IIS得到一个请求;2、查询脚本映射扩展,、代码进入工作者进程(;),工作者进程也叫辅助进程;4、.NET运行时被加载;5、()方法;6、每一个请求调用一个IsapiWorkerRequest;7、()方法;8、通过传递进来的WorkerRequest创建一个HttpContext对象9、(),然后调用该方法,从应用程序池中获取一个HttpApplication实例;10、(),启动管道事件序列,钩住模块和处理器;11、,开始处理请求;12、触发管道事件;13、调用HTTP处理器和ProcessRequest方法;14、把返回的数据输出到管道,触发处理请求后的事件。当客户端向Web服务器请求一个页面文件时,(WWW服务),它判断文件后缀,如果是*.aspx、*.asmx等,,,,,framework就会通过HttpRuntime来处理这个HTTP请求,处理完毕后将结果返回给客户端。当一个HTTP请求被送入到HttpRuntime之后,这个HTTP请求通过HTTP管道(HttpRuntime是HTTP管道的入口)被送入到一个被称之为HttpApplicationFactory的一个容器当中,而这个容器会给出一个HttpApplication实例来处理传递进来的HTTP请求,同时HttpApplication实例会创建一个HttpContext对象来记录HTTP请求的上下文,而后这个HTTP请求会依次进入到如下几个容器中:HttpModule-->HttpHandlerFactory-->HttpHandler当系统内部的HttpHandler的ProcessRequest方法处理完毕之后,整个HttpRequest就被处理完成了。如果想在中途截获一个HttpRequest并做些自己的处理,就应该在HttpRuntime运行时内部来做到这一点,确切的说时在HttpModule这个容器中做到这个的。过程详解:从本质上讲,主要是由一系列的类组成,这些类的主要目的就是将Http请求转变为对客户端的响应。的一个主要入口,它有一个ProcessRequest方法,这个方法以一个HttpWorkerRequest类作为参数。HttpRuntime类几乎包含着关于单个Http请求的所有信息:所请求的文件、服务器端变量、QueryString、Http头信息等等。使用这些信息来加载、运行正确的文件,并且将这个请求转换到输出流中,一般来说,就是HTML页面;二般来说,也可以是张图片^_^。对于IIS来说,它依赖于
http%e8%af%b7%e6%b1%82%e5%a4%84%e7%90%86%e6%b5%81%e7%a8%8b(%e8%ae%b2%e7%9a%84%e5%be%88%e6%b8%85%e6%a5%9a) 来自淘豆网www.taodocs.com转载请标明出处.