贵州做网站公司
贵州做网站公司~专业!靠谱!
10年网站模板开发经验,熟悉国内外开源网站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等网站程序,可为您提供网站建设,网站克隆,仿站,网页设计,网站制作,网站推广优化等服务。我们专注高端营销型网站,企业官网,集团官网,自适应网站,手机网站,网络营销,网站优化,网站服务器环境搭建以及托管运维等。为客户提供一站式网站解决方案!!!

HTTP.SYS 详解

来源:网络转载 时间:2023-12-15 08:06:40


http.sys 是一个位于Win2003和WinXP SP2中的
操作系统核心组件,能够让任何应用程序通过它提供的接口,以http协议进行信息通讯。

温馨提示:如果用户不慎删除了该驱动文件,不用担心,该驱动会在下次系统启动时重建。是一个删不掉的系统核心组件!实用程序结束该驱动,该驱动也会马上重新创建(只有粉碎文件才不能马上重建,但粉碎后,下次启动会重建)。

微软在Windows 2003 Server里引进了新的HTTP API和kernel mode driver Http.sys,目的是使基于Http服务的程序更有效率。这个改变的直接收益者就是IIS 6.0 和 asp.net.

其实在Windows XP安装SP2后,Http.sys已经出现在系统里了,但事实上,操作系统并没有真的使用这个内核级驱动,而XP上自带的IIS 5.1也没有使用HTTP API。

新的HTTP API里最核心的变化都封装在Http.sys这个kernel mode driver里了。在此之前,基于HTTP协议的程序都是在User mode下运行的,而且必须自己处理诸如软件中断、context switch、线程调度等等问题,并且往往无法自由接触系统资源。过去,HTTP服务器,如IIS, apache等都是利用Winsock API来创建一个User mode下的network listener。Network listener通常独自(i.e.: per application or per thread basis)占用一个IP端口。通俗点说,就是在同一时间只有一个应用程序可以监听一个端口,这在有些时候是一个不太令人舒服的限制。

新的Http.sys带来的好处大致有如下一些:

1. 缓存 - 静态的内容现在被缓存于内核模式下,这使
服务响应速度更快

2. 记录 (Log)-IIS的log功能更快且标准化了

3. 带宽控制 - greater scalability control and throttling

4. 可靠性 - 所有的服务请求会在Http.sys里暂存入队列,而不是由服务程序本身来处理,这样,即使服务程序重启,尚未被处理的请求也不会丢失了

5. IP端口重用 - 现在,只要是通过Http.sys管理的端口(基本包括了那些著名的端口,比如80),都可以同时允许多个程序同时监听了。

Http.sys 是IIS 6.0使用的新型侦听器。在IIS 6.0出现之前,inetinfo.exe完成侦听HTTP请求的功能,同时还要将请求转发给对应的处理程序。从IIS 6.0开始,侦听器与inetinfo.exe分离开来,inetinfo.exe在用户模式下运行,Http.sys则完成侦听HTTP请求的功能,在 内核模式下运行。

1. 内核模式和用户模式

在Windows Server 2003中,一个进程既可以运行于内核模式,也可以运行于用户模式。如果一个进程运行于内核模式,那么这个进程就可以访问所有硬件和系统数据;如果一个进 程运行于用户模式,那么这个进程不能直接访问硬件,而且访问系统数据时也会受到限制。在Intel处理器架构中,内核模式运行于ring 0之内,而用户模式运行于ring 3。通过在内核模式运行Http.sys,侦听器可以直接访问TCP/IP协议栈,但是又能够位于WWW服务之外,这样就不会受到应用程序中代码缺陷的影 响,也不会因为应用程序崩溃而出现问题。

通过在内核模式运行,Http.sys获得了比较高的优先级,与先前版本的IIS相比,对 HTTP请求响应速度比较快。Http.sys不仅因为具 有较高的优先级而提高了IIS的性能,而且,还可以在等待应用程序响应(即使应用程序已经停止响应)的同时,将请求进行排队。在IIS 6.0中,每个应用程序池都拥有一个内核模式队列,Http.sys可以将请求转发给合适的队列。所以,在IIS 6.0中,当我们对性能进行调优时,可以将负载比较重的应用程序分隔到不同的应用程序池,从而使负载比较轻的应用程序不必与负载较重的应用程序共享同一个 队列。对每个应用程序池而言,队列规模是可配置的。

Http.sys可以将请求进行缓存,并尽可能地在内核模式中完成对请求的服务。如 果某个请求的响应已经得到了缓存,那么IIS就无须重新处理这个 请求,Http.sys只需要将这个响应从缓存中取出,这样就绕开了所有的IIS功能,从而也就避免了重新处理。这些已缓存的请求都保存在内存中,并且不 允许换出,因此,尽可能地增大系统内存是提高IIS性能的一种简单有效的方法。

尽可能地增大系统内存还能够减少inetinfo.exe的磁盘交换次数。inetinfo.exe运行于用户模式,可以在必要时交换到磁盘空间。如果系统内存过少,那么IIS的性能会急剧下降。

2. 其他Http.sys功能

针对HTTP请求和响应,Http.sys还能够处理TCP/IP连接,包括创建连接和断开连接。因为Http.sys直接运行于TCP/IP协议栈之上,因此还需要处理连接和超时,以及连接数限制和带宽不足。此外,Http.sys还需要处理日志。

Http.sys 通过执行两项重要功能来提高IIS 6.0的性能。首先,Http.sys在内核模式下对请求进行缓存,因此,为了给某个请求提供服务,如果该请求所需内容最近已经为先前某个请求提供服务 (无论是提供静态内容还是提供动态内容),那么可以在内核模式下直接为该请求提供其所需内容,而不需要再切换到用户模式下在inetinfo.exe进程 中运行。

Http.sys还可以将请求进行排队,由合适的工作进程完成对请求的服务。每个应用程序池都拥有自己的队列,队列的规模是可以配置的,这样,我们 可以对某个具体应用程序池的性能进行调优。针对可能会发生失效的应用程序,使用队列还有另一个优点,就是针对失效应用程序的请求仍然会保存在队列中,直到 队列中保存的请求总数达到该队列的上限。当应用程序能够重新进行响应时,这些请求仍然能够得到处理;此外,通过自动重启发生失效的应用程序池,还能够降低 响应时间,从用户看来,应用程序的响应仅仅是稍微延迟了一点。

SEO小店网站优化 能带来大量精准流量的网站才是好网站,小店网络公司SEO优化推广可以为企业网站带来大量的有效流量。 ...

汉寿网站排名快速提升 汉寿网络公司快速提升企业网站排名,通过网站优化推广,让汉寿企业网站在搜索引擎的排名长期稳定。 ...

SEO张家界网站优化 能带来大量精准流量的网站才是好网站,张家界网络公司SEO优化推广可以为企业网站带来大量的有效流量。 ...

resx是什么文件,有什么用,怎么用?. resx文件是一个资源文件,由XML组成,可以添加任何资源,包括二进制文件。此外,它不能嵌入到程序集中。在系统资源命名空间中有专门用于读写的类。Vs.net创建此文件,然后将其转换为.Resources文件,并根据设置将其嵌入程序集中。一般来说,它是自动生成的,不管它是什么资源文件。静态资源,如文本和图像,可以嵌入其中。生成应用程序或DLL时,它将附加到相...

西直门三栋大楼叫什么?西直门的三座建筑统称西环广场。西环广场由三面椭圆形玻璃幕墙和一座方形建筑组成,创造了在地铁上建高楼的历史。是北京北站旁边的标志性建筑。行驶到北二环或者西二环的时候非常醒目。其实更像是风水学中三座山的意思,北面有山。北京北站凯德mall是哪个店?它就是凯德mall西直门店,位于西直门立交桥西北角两点半的抛物大厦,也就是西环广场,离北京北站很近。北京哪有太平鸟专柜?太平鸟(西直门...

Cf刀锋对灵狐做了什么?刀锋在令狐的床上休息了十五分钟,这才有力气爬到下铺。他一上下铺,一个辣妹就缠上了他。CF刀锋和灵狐者有什么区别?1.每次游戏结束令狐都会给你20%的经验加成给刀锋吗?2.刀锋的换枪速度比令狐等角色快。3.令狐的综合属性强于所有任务。4.令狐的体积比刀刃大,很容易打中。5.叶片运动需要4.42秒。戚薇和令狐耗时4.30秒。刀锋和灵狐者是什么?狐仙在游戏的CF背景设定中与刀锋无...

TOP