http.sys簡介
溫馨提示:如果用戶不慎刪除了該驅動檔案,不用擔心,該驅動會在下次系統啟動時重建。是一個刪不掉的系統核心組件!實用程式結束該驅動,該驅動也會馬上重新創建(只有粉碎檔案才不能馬上重建,但粉碎後,下次啟動會重建)。
微軟在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),都可以同時允許多個程式同時監聽了。