2009-09-24 67 views
12

我知道微軟創建HTTP.SYS來提高IIS的性能。我的問題是,HTTP.SYS處理HTTP流量爲所有應用程序?例如,如果JVM使用Winsock來接收HTTP流量,那麼HTTP.SYS透明地通過Winsock API傳遞這些數據呢?或者Winsock在Windows的新內核中被HTTP.SYS所取代?所有HTTP流量是否通過Windows上的HTTP.SYS?

微軟是不是在他們的文檔清楚這一點,據我可以告訴。

回答

6

應用程序可以選擇使用http.sys。他們可以選擇實現自己的HTTP協議處理程序。

強烈建議應用程序使用HTTP.SYS出於安全原因 - 通過HTTP.SYS實現的HTTP服務器是相當不錯的硬化和其他HTTP服務器可能會引入安全缺陷。

據我所知,HTTP.SYS會談TCP協議棧,而不是NDIS(否則就必須實現所有TCP的內部並沒有做出很大的意義)。

0

Winsock的是插座,低於HTTP,所以我不認爲它通過HTTP.SYS。

Internet Explorer使用的Wininet用於HTTP通信,其在向上穿過Vista中沒有使用的Http.sys。

編輯我認爲這本書「Windows內部」將回答你的問題。

+2

Winsocket是一個用戶級庫,HTTP.SYS是一個內核級驅動程序。因此,HTTP.SYS必須在Winsock之前,即使網絡級別在技術上較高。 這仍然留下了一個問題,那HTTP.SYS處理所有的HTTP流量,如果是的話,那怎麼不是開往IIS HTTP流量在使用Winsock的用戶進程結束了? – 2009-09-24 20:22:39

+2

@LeeksandLeaks只處理要監聽的端點上的流量,前提是應用程序處於活動狀態並處理隊列。 Http.sys在通過tcp感知到類似HTTP的通信時不會奇蹟般地激活。 – fabspro 2012-11-21 14:46:25

相關問題