Весь HTTP-трафик проходит через HTTP.SYS в Windows?
Я знаю, что Microsoft создала HTTP.SYS для повышения производительности IIS. Мой вопрос, правда ли, что HTTP.SYS обрабатывает HTTP-трафик для всех приложений? Например, если JVM использует Winsock для получения HTTP-трафика, HTTP.SYS прозрачно передает эти данные через Winsock API? Или Winsock был заменен HTTP.SYS на более новые ядра Windows?
Microsoft не совсем поняла об этом в своих документах, насколько я могу судить.
Ответы
Ответ 1
Приложения могут использовать http.sys. Они могут выбирать для реализации своих собственных обработчиков протокола HTTP.
Настоятельно рекомендуется, чтобы приложения использовали http.sys по соображениям безопасности - HTTP-сервер, реализованный с помощью http.sys, довольно хорошо затвердел, а другие HTTP-серверы могут создавать дефекты безопасности.
Насколько я знаю, HTTP.SYS говорит о стеке TCP, а не NDIS (иначе ему пришлось бы реализовать весь TCP внутри, и это не имеет большого смысла).
Ответ 2
Winsock - это уровень сокета, ниже HTTP, поэтому я не думаю, что он проходит через Http.Sys.
Internet Explorer использует связь Wininet для HTTP, которая при использовании Vista не использовала Http.sys.
edit Я думаю, что книга "Windows Internals" ответит на ваш вопрос.