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),都可以同時允許多個程序同時監聽了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章