http.sys简介
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的好处
新的Http.sys带来的好处大致有如下一些:
1.
缓存 -
静态的内容现在被缓存于内核模式下,这使
服务响应速度更快
2. 记录 (Log)-IIS的log功能更快且标准化了
3. 带宽控制 - greater scalability control and throttling
4. 可靠性 - 所有的服务请求会在Http.sys里暂存入队列,而不是由服务程序本身来处理,这样,即使服务程序重启,尚未被处理的请求也不会丢失了
5. IP端口重用 - 现在,只要是通过Http.sys管理的端口(基本包括了那些著名的端口,比如80),都可以同时允许多个程序同时监听了。