所有HTTP流量都通过Windows上的HTTP.SYS吗?

时间:2009-09-24 18:01:26

标签: windows http networking

我知道Microsoft创建了HTTP.SYS以提高IIS的性能。我的问题是HTTP.SYS是否处理所有应用程序的HTTP流量?例如,如果JVM使用Winsock接收HTTP流量,那么HTTP.SYS是否透明地通过Winsock API传递此数据?或者在Windows的新内核上使用HTTP.SYS替换了Winsock?

据我所知,微软在他们的文档中并不清楚这一点。

2 个答案:

答案 0 :(得分:6)

应用程序可以选择使用http.sys。他们可以选择实现自己的HTTP协议处理程序。

强烈建议应用程序出于安全原因使用http.sys - http.sys实现的HTTP服务器相当强硬,其他HTTP服务器可能会引入安全缺陷。

据我所知,HTTP.SYS与TCP堆栈进行通信,而不是NDIS(否则它必须在内部实现所有TCP,这没有多大意义)。

答案 1 :(得分:0)

Winsock是套接字级别,低于HTTP,所以我认为它不会通过Http.Sys。

Internet Explorer使用Wininet进行HTTP通信,在Vista上没有使用Http.sys。

编辑我认为“Windows Internals”一书会回答你的问题。