IIS7架构

IIS7提供的请求处理架构

    处理架构包括:

  •  Windows进程激活服务 (WAS), 为站点提供了使用 HTTP and HTTPS之外协议的能力。

  •  Web服务器引擎,它能够通过增加和删除模块来定制。

  • 来自 IIS 和ASP.NET的集成请求处理管线。

IIS7的请求处理模型

IIS7架构_第1张图片

IIS7中的组件

IIS包含了几个重要组件,分别是协议监听器(比如HTTP.sys)以及服务(比如万维网发布服务WWWService和Windows进程激活服务WAS)。

  • 协议监听器

接收指定协议的请求,把他们发送给IIS处理,然后把响应结果返回给请求方。服务和程序除了能监听HTTP和HTTPS协议之外,还可以监听非HTTP协议,如TCP,可以使用其他技术,如WCF。

HTTP和HTTPS协议监听器--HTTP.sys(HTTP协议栈),是Windows操作系统网络子系统的一部分,作为内核模式设备驱动(kernel-mode device driver)实现的,其实是TCP之上的一个网络驱动程序。用于监听来自网络的HTTP的请求,把请求传送给IIS处理,并将处理结果返回给客户端浏览器。使用HTTP.sys有以下好处:

  1.  缓存的响应能够被直接返回到客户端,无需再交给到用户模式进程处理。

  2.  由于内核直接将请求交给当前工作进程,因此请求在上下文切换方面耗费更少的开销。如果没有工作进程能够接收这个请求,内核模式请求队列暂时保存这个请求直到有工作进程去处理它。

  3.  请求预处理和安全过滤。

严格地说,HTTP.SYS已经不属于IIS的范畴了,所以HTTP.SYS的配置信息并不保存在IIS的元数据库(Metabase),而是定义在注册表中。HTTP.SYS的注册表项位于下面的路径中:HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/HTTP。

HTTP.SYS能够带来如下的好处:

  1. 持续监听:由于HTTP.SYS是一个网络驱动程序,始终处于运行状态,对于用户的HTTP请求,能够及时作出反应;

  2. 更好的稳定性:HTTP.SYS运行在操作系统内核模式下,并不执行任何用户代码,所以其本身不会受到Web应用、工作进程和IIS进程的影响;

  3. 内核模式下数据缓存:如果某个资源被频繁请求,HTTP.SYS会把响应的内容进行内核模式的缓存(不存在内核模式和用户模式的切换,响应速度将得到极大的改进),缓存的内容可以直接响应后续的请求。

  • 万维网发布服务WWWService

以前由WWWService单独提供的功能,到了IIS7及以上版本中被分成了两个服务:WWWService和WAS。这两个服务在本地系统同一Svchost.exe进程上运行,并共享数据。

IIS7及以上版本中WWWService不再管理工作进程,它仅仅是HTTP.sys监听器的适配器,负责WAS和HTTP.sys之间的通信。其主要责任是配置HTTP.sys、当配置变化时更新HTTP.sys、当有请求进入请求队列时通知WAS。另外,还收集站点性能计数。

  • WAS

管理应用程序池和工作进程。WAS能让用户使用相同配置和处理模型去处理HTTP和非HTTP站点,如WCF的TCP协议,可以使用NetTcpActivator,它即是TCP协议监听器,又是TCP协议适配器

参考:IIS架构原理 http://www.cnblogs.com/isdavid/archive/2013/05/28/3103228.html




你可能感兴趣的:(IIS7架构)