2009-09-24 28 views
12

Sé que Microsoft creó HTTP.SYS para aumentar el rendimiento de IIS. Mi pregunta es si HTTP.SYS maneja el tráfico HTTP para todas las aplicaciones? ¿Qué pasa con una JVM, por ejemplo, si usa Winsock para recibir tráfico HTTP, HTTP.SYS transfiere estos datos de forma transparente a través de la API de Winsock? ¿O Winsock ha sido reemplazado por HTTP.SYS en kernels nuevos de Windows?¿Todo el tráfico HTTP pasa por HTTP.SYS en Windows?

Microsoft no tiene claro esto en sus documentos, por lo que yo sé.

Respuesta

6

Las aplicaciones pueden elegir usar http.sys. Pueden elegir implementar sus propios manejadores de protocolos HTTP.

Se recomienda encarecidamente que las aplicaciones usen http.sys por razones de seguridad: el servidor HTTP implementado por http.sys está bastante reforzado y otros servidores HTTP pueden presentar defectos de seguridad.

Hasta donde yo sé, HTTP.SYS habla con la pila TCP, no con NDIS (de lo contrario, tendría que implementar todo el TCP internamente y eso no tiene mucho sentido).

0

Winsock es el nivel de socket, debajo de HTTP, así que no creo que pase por Http.Sys.

Internet Explorer usa Wininet para la comunicación HTTP, que hasta en Vista no usó Http.sys.

editar Creo que el libro "Windows Internals" responderá a su pregunta.

+2

Winsocket es una biblioteca de nivel de usuario, HTTP.SYS es un controlador de nivel de kernel. HTTP.SYS por lo tanto debe estar antes de Winsock, incluso si el nivel de red es técnicamente más alto en la pila. Esto aún deja abierta la cuestión, ¿HTTP.SYS maneja todo el tráfico HTTP y, de ser así, cómo termina el tráfico http que no está vinculado a IIS en un proceso de usuario que usa Winsock? –

+2

@LeeksandLeaks Solo gestiona el tráfico en los puntos finales que debe escuchar, siempre que la aplicación esté activa y procesando la cola. Http.sys no se activa mágicamente cuando detecta comunicación similar a HTTP a través de tcp. – fabspro

Cuestiones relacionadas