VS.NET(C#)-5.13_IIS5请求与响应过程

IIS5请求与响应过程:

1、接收客户端请求

当一个HTTP请求从客户端发送过来之后会被WEB服务器进行Queue并进行分解归类:

2、静态页面请求

如果某个请求仅包含静态文件的请求,比如CSS,JS,Html文件或者虚拟目录所包含的文件如图片,IIS直接提取对应的文件将其作为Http Response返回给Client。

3、动态页面请求

如果一个请求中包含动静态请求,那么静态内容会等到动态内容生成HTML后组合在一起返回给Client。

但是对于这些需要进一步处理的动态执行的文件,IIS必须将Request进一步传递给对应的处理程序,待处理程序执行完毕获得最终的Http Response通过IIS返回给Client。

①、对于IIS5来说,这些处理程序通过ISAPIExtension来体现。ISAPI Extension接收到请求页的扩展名之后会到IIS的Metadata database维护着一个称为ISAPI Extension Mapping的数据表查询负责将不同类型的Resource影射到对应的ISAPI Extension。对应.ASPX的Mapping是ASP.NET ISAPI,

至此,ASP.NET ISAPI会创建一aspnet_wp.exe的worker process(若该Process不存在的话)。

②、当地一个ASP.NET接收到Application中的任何一个.ASPX请求时,名为ApplicationManager的类会创建一个ApplicationDomain(应用程序域)。

ApplicationDomain会为全局变量提供应用程序隔离,并允许单独写真每个应用程序。

在应用程序域中,将为名为 HostingEnvironment 的类创建一个实例,该实例提供对有关应用程序的信息(如存储该应用程序的文件夹的名称)的访问。

如果需要,ASP.NET 还可对应用程序中的顶级项进行编译,其中包括 App_Code 文件夹中的应用程序代码。

③、创建了应用程序域并对 HostingEnvironment 对象进行了实例化之后,ASP.NET 将创建并初始化核心对象,如 HttpContext、HttpRequest和 HttpResponse。

HttpContext 包含特定于当前应用程序请求的对象,如 HttpRequest 和HttpResponse 对象。

HttpRequest对象包含有关当前请求的信息,包括Cookie 和浏览器信息。

HttpResponse 对象包含发送到客户端的响应,包括所有呈现的输出和 Cookie。

④、初始化所有核心应用程序对象之后,将通过创建HttpApplication 类的实例启动应用程序。如果应用程序具有 Global.asax 文件,则ASP.NET 会创建 Global.asax类(从 HttpApplication 类派生)的一个实例,并使用该派生类表示应用程序。

创建 HttpApplication的实例时,将同时创建所有已配置的模块。

例如,如果将应用程序这样配置,ASP.NET 就会创建一个SessionStateModule 模块。

创建了所有已配置的模块之后,将调用HttpApplication 类的 Init 方法。在处理该请求时将由 HttpApplication 类执行以下事件。

对请求进行验证,将检查浏览器发送的信息,并确定其包含潜在恶意标记.

如果已在 Web.config 文件的 UrlMappingsSection 节中配置了任何 URL,则执行 URL 映射。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值