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