深入剖析IIS 6.0图文教程(5)
来源:asp之家 发布时间:2010-04-04 18:18:00
■ http.sys
IIS 6.0体系设计中最重大的变化是加入了http.sys驱动程序,http.sys驱动程序的任务是处理HTTP请求,而且它在内核模式下执行操作。不要小看这一改变,将处理HTTP请求的任务从IIS 5.0、IIS 4.0的用户模式改变到IIS 6.0的内核模式标志着新一代IIS服务器的诞生。
在Win 2K和NT 4.0中,IIS在用户模式下运行。运行在用户模式下的应用程序不直接与硬件通信,它们直接调用的是一些标准过程,这些标准过程或者将数据传入内核模式的组件(例如网卡驱动程序,图形子系统),或者调用内核模式组件的函数,以此完成保存文件、设置IP地址、将HTML文件发送到网络之类的任务。
用户模式和内核模式之间的转换是一项开销很大的操作,服务器首先从内核模式的TCP/IP栈将传入的HTTP请求传递给用户模式的Winsock,由Winsock将请求传递给IIS。从内核模式到用户模式的切换很快发生,但不可避免地给处理过程带来瞬间的延迟。当负载较大时,这种延迟不断累加,同时由于这种转换是必不可少的,所以管理员根本没有办法优化处理过程。
IIS 6.0的https.sys内核模式驱动程序极大地减少了用户模式和内核模式之间的切换次数。http.sys监听着HTTP请求,决定由哪一个用户模式的进程来处理该请求,或者是否由驱动程序本身返回用户请求的内容。
IIS 6.0在用户模式下运行,完全依赖内核模式的http.sys作为接收用户请求的服务器引擎。因此,http.sys必须能够在任何时候作出相应,必须具有极高的可靠性。用户代码可能导致进程出错,所以微软把http.sys设计成不执行任何用户代码,这样,即使应用程序出现了故障,也不会影响到IIS 6.0本身,IIS 6.0仍能够照常监听HTTP请求。
如果要从内核模式的缓冲区返回静态的应答,一个高速的、内核模式的、不允许运行应用程序代码的HTTP处理器是十分理想的,它减少了切换到用户模式的昂贵开销,能够从内核模式的缓冲区快速返回应答。IIS 6.0的http.sys就管理着这样一个缓冲区,而且使用了高度优化的启发式缓冲区算法来确定哪些内容要放入缓冲区,例如,http.sys可能只缓冲那些出现了一次以上请求的内容。
由于http.sys直接从应答缓冲区提取静态内容,不必再切换到用户模式,所以与IIS 5.0的性能相比,IIS 6.0的整体性能有了显著提升。根据微软的资料显示,WebBench基准测试表明IIS 6.0返回静态内容的速度要比IIS 5.0快150%。即使以IIS 5.0的隔离模式运行IIS 6.0服务器(这时,IIS 6.0的体系结构与IIS 5.0的相似),同样也能从http.sys驱动程序的应答缓冲区和其他改进之处获益。
另外,微软在http.sys驱动程序中采用了许多优化的算法,使其能够将请求直接转发到适当的工作进程。在IIS 4.0和IIS 5.0中,必须通过多个步骤才能确定进程的哪一个实例拥有了应当接收当前请求的Web应用,但在IIS 6.0中,http.sys注册了所有IIS 6.0应用,赋予每一个进程一个句柄,IIS内部利用这些句柄来标识注册的应用程序要用到的一个或多个名称空间。因此,当http.sys接收到一个HTTP请求,它能够很快地将请求从内核模式的http.sys传递到正确的用户模式的Web应用。
http.sys驱动程序还要执行其他一些任务,其中包括:
⑴ 将传入的URL与各种长度、格式方面的规则进行比较。
⑵ 管理传入请求的队列。
⑶ 担负着记录IIS Web网站日志信息的任务(从而提高了记录日志的性能)。
⑷ 实施带宽限制策略以及支持TCP/IP级的管理。
⑸ 实现客户证书请求服务(但不支持安全套接字层——SSL)。
由于http.sys是一个操作系统的驱动程序,而不是一个IIS组件,因此该驱动程序的配置在注册表而不是IIS配置数据中进行。当前,还有许多http.sys的注册表设置项目尚无正式的说明文档,它可能意味着微软不鼓励用户修改这些设置,因为这些设置项目将来可能会有变化。http.sys驱动程序的注册表设置项目位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP下面,在这里可添加各种注册键(默认配置中不包含这些注册键),诸如:
⑴ EnableNonUTF8:如果加入EnableNonUTF8子键,并将它的值设置成0,http.sys只接受UTF-8编码的URL。UTF-8的全称是Universal Character Set(UCS)Transformation Format 8,这是一种字符集标准,标准全文在http://www.ietf.org/rfc/rfc2279.txt,它允许使用多国语言的字符集。默认情况下,EnableNonUTF8的值是1,表示IIS接受UTF-8、ANSI、双字节字符集(DBCS)编码的URL。
⑵ PercentUAllowed:当这个子键设置成1时(默认值),http.sys认可那些部分字符用%uNNNN表示的URL,其中NNNN是一组表示实际字符的数字。当PercentUAllowed设置成0时,IIS 6.0将拒绝那些部分字符用这种方式表示的URL。
%uNNNN是一种不太常用的Unicode符号,不要将它与常见的UTF-8表示形式混淆。在UTF-8表示形式中,%20表示一个空格,例如http://www.iisanswers.com/new article.htm相当于http://www.iisanswers.com/new%20article.htm,两者之间的转换由IE浏览器自动完成,不管EnableNonUTF8和PercentUAllowed设置成了什么值,IIS 6.0都会接受。
这两项设置,再加上其他可以在IIS 6.0文档中找到的设置项目,从一个侧面反映了IIS 6.0在URL解析方面的改进。在IIS 5.0中,一些重大的安全问题与Web服务器解析URL的方式有密切的关系,现在微软终于解决了原先存在的缺陷,同时作出了一些改进,允许管理员更加明确地定义IIS 6.0解析URL的规则。在天生具有国际化特点的Internet上,多国语言并存,这些改进之处尤其具有重要意义。
关于Unicode的更多信息,请参见http://www.unicode.org;关于IIS 5.0缺陷的更多信息,请参见 http://www.wiretrip.net/rfp/p/doc.asp/i5/d57.htm。在Windows Server 2003 Resource Kit中可以找到一个帮助配置http.sys的工具。
猜你喜欢
- 模板导入方法如下:1. 登陆后台->常规设置->模板导入->选择模板数据库下载一步->选择要导入的模板(注:这里可以
- 购买HostMonster美国主机非常简单,购买的过程也很简单。HostMonster主机可以用信用卡支付,也可以用PayPal支付。下面以
- 很多站长可能在泡论坛的时候会经常见到Alexa这个单词,但是对于很多新手站长来说这个东西会比较的陌生。或者你是知道这个的作用,但是在查询自己
- 为了实现Linux环境下的FTP服务器配置,绝大多数的Linux发行套装中都选用的是Washington University FTP(Wu
- Godaddy主机用户使用Hosting Control Center里的File Manager,可以以名称、大小、修改的数据或者文档类型
- 因为喜欢PHP和开源所以喜欢上DEDECMS,但是因为技术有限所以用起来遇到很多的困难而又没人帮忙,只能自己摸索加向朋友提问,从中也体会到做
- 总所周知,SEO对于广大站长来时是极其重要的一课,笔者根据对www.bitjob.net的优化经验,身体力行的实践,合理结合参考专业文献,给
- 想要成为一个合格的站长,做好再讲的网站是有很多因素的,下边,就这些问题说一说,如何才能建设好一个成功的网站。首先,一个成功的网站,定位一定要
- ARP(Address Resolution Protocol,地址解析协议)是一个位于TCP/IP协议栈中的低层协议,负责将某个IP地址解
- 一、事件发生春节长假刚过完,WEB就出现故障,下午1点吃完回来,立即将桌面解锁并习惯性的检查了Web服务器。通过Web服务器性能监视软件图像
- 常见的线上推广网站方法SEO,论坛群发,Email群发,软文写作,投放网络广告等,估计大家用的多了,见的多了。但是大家有没有尝试过去做做线下
- 据有关资料显示,现在有大量的服务器仍在使用IIS提供Web服务,甚至有争夺占领Apache市场的趋势。在Web威胁日益严重的今天,我们当然要
- Apache James是最好用的开源java邮件服务器之一,在配置smtp服务过程中,有些步骤不对的话邮件就发送不出去。0.打开james
- 肥胖 长期坐在电脑前的人,因缺乏锻炼,会出现重力性脂肪组织分布异常。脂肪堆积在下腹部和腰背部,导致向心性肥胖。 下肢静脉曲张 因缺乏活动,依
- 这次给大家介绍的是我对“用户体验”与搜索引擎排名之间的关系的一些观点。因为时间关系,可能文章的某些句子不通顺,请各位见谅,文章内容均为本人猜
- 1、如果你必须使用Java script的下拉菜单、图片地图、或者图片链接,那么你一定要放置它们的文本链接在页面的某些地方,以便于搜索引擎的
- CNET科技资讯网 3月3日 北京报道(文/张丹):雅虎全球与微软的联姻获批,使得搜索市场谷歌一家独大的不利市场局面获得转机。然而雅虎这家拥
- Discuz!是康盛创想(Comsenz)公司推出的一款论坛BBS建站产品。目前最新版本是Discuz!7.1。为提升论坛的安全级别,Dis
- 很多站长在谈论SEO的时候,都会不自觉得谈到一个网站发展的瓶颈问题,即如何把从搜索引擎来的用户留下。在大家都削尖了脑袋转进了seo后,现在把
- 微软全球技术支持中心亚太区总经理柯文达在今天IT市场两会上接受网易科技专访时表示“Windows激活技术”对正版用户来说是一种保护,“对那些