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),都可以同時允許多個程式同時監聽了。
Windows Server 2003 家族成員中的超文字傳輸通訊協定 (HTTP) (HTTP) 棧以一個名為 HTTP.sys 的核心模式裝置驅動程式形式來實現。HTTP.sys 是 Windows Server 2003 家族所特有的新功能,它是網路子系統的一部分。IIS 是一個使用者模式進程,它與核心處理在完全不同的執行模式下運行。HTTP.sys 是所有傳入(伺服器端) HTTP 要求的單個聯絡點,它為 HTTP 伺服器應用程式提供高效能的串連性。HTTP.sys 還負責進行總體串連管理、頻寬控制和基於文本的日誌記錄。HTTP.sys 實現靈活的通用資源標識符 (URI) 響應緩衝(名為可伸縮緩衝),允許 HTTP 應用程式完全在核心模式(而不轉換到使用者模式)下緩衝待用資料並為緩衝的 HTTP 要求提供服務。HTTP.sys 實現一個名為應用程式集區的 URI 名稱空間映射機制。利用應用程式集區,HTTP 應用程式可聲明 URI 名稱空間的多個部分,從而允許 HTTP.sys 將 HTTP 要求直接路由到相應的 HTTP 應用程式。基於這些更改,IIS 已經提高了多處理器電腦的輸送量和延展性,從大大增加了:
- 單個 IIS 6.0 伺服器可以主控的網站數。
- 同時活動的背景工作處理序數。
- 啟動/關閉次數。