---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
在客户通过网页访问一个服务器的时候,这是一个怎样的过程呢,黑马程序员“整体请求示意图”
用户通过网络访问我们的网站(比方说index.aspx页面)
↓
浏览器通过网络访问服务器,由服务器软件接收到请求
↓
传到iis(或者是其他网络服务软件)
↓
服务器软件发现处理不了这种后缀的文件,就通过映射表将请求传给了服务器扩展程序中叫做ASPNET_ISAPI.DLL的程序
(其中的ASP.NET ISAPI相当于一个桥梁的作用)
↓
可扩展程序将请求给网站程序,网站程序调用HttpRuntime类的静态方法处理请求
↓
由HttpRuntime类处理所有的请求,他的工作有下面几点
1、分析请求报文,并将报文数据封装如一个叫做HttpWorkerRequest类对象对应的属性中
2、通过调用HttpApplicationFactory的类的一个静态方法来创建HttpApplication对象
HttpApplication池:每次HttpApplicationFactory都会到这个池里边查找,看有没有空闲的HttpApplication对象,如果有,就直接拿出来用,否则才创建新的来使用
HttpApplication对象:为每个请求创建单独的Httpapplication对象,那么网站针对此次请求的所有运行过程都在此对象中完成
3、创建HttpContext对象,此对象是当前请求的上下文环境,里面包含处理请求的所有参数。其中最重要的就是HttpRequest和HttpResponse两个雷德对象
3.1、创建HttpContext主要是包含了所有的请求信息,这些信息来源于HttpWorkerRequest对象,对象中包含属性:Form(客户端表单数据),QueryString(客户端URL参数)
3.2、HttpRequest主要包含了FileStream对象,用来保存页面类执行过程中要输出给浏览器的数据
4、因为在HttpApplication里要运行被请求的页面类对象里的ProcessRequest方法,所以,需要将HttpContext对象传入到HttpApplication中来
执行Httplication的ProcessRequest方法(可以讲这个方法看做是一个管道)此方法中,要先后按照顺序创建19个委托事件。
1、在其中的第8个事件时,创建被请求的页面类对象
2.、在11,12事件之间,执行了被创建的页面类对象的ProcessRequest方法
以上是页面从互联网到服务器之间的简单处理过程,有不详尽之处,请不吝指正