http.sys
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帶來的好處大致有如下一些:
1. 緩存 - 靜態的內容現在被緩存於內核模式下,這使 服務響應速度更快
2. 記錄(Log)-IIS的log功能更快且標準化了
3. 帶寬控制 - greater scalability control and throttling
4. 可靠性 - 所有的服務請求會在Http.sys里暫存入隊列,而不是由服務程序本身來處理,這樣,即使服務程序重啟,尚未被處理的請求也不會丟失了
5. IP埠重用 - 現在,只要是通過Http.sys管理的埠(基本包括了那些著名的埠,比如80),都可以同時允許多個程序同時監聽了。