¿En qué escenarios usaré `netsh http add urlacl`?


14

Estoy tratando de entender en qué escenario necesitaré usar dicho comando:

netsh http add urlacl url=http://server1:1234/ user=Everyone

¿Es como usar el hostsarchivo donde puedo conectar una dirección específica a mi computadora? (No lo creo).

Los documentos no son tan claros (para mí):

Netsh es una utilidad de secuencias de comandos de línea de comandos que le permite, local o remotamente, mostrar o modificar la configuración de red de una computadora que se está ejecutando actualmente. Netsh también proporciona una función de secuencias de comandos que le permite ejecutar un grupo de comandos en modo por lotes en una computadora específica. Netsh también puede guardar un script de configuración en un archivo de texto para fines de archivo o para ayudarlo a configurar otros servidores.

Pregunta:

¿Alguien puede proporcionar un escenario de la vida real (+ implementación) donde quiera usarlo?

Información adicional: he leído esta pregunta donde un chico que ha intentado acceder (a través de C #) para:

http://localhost:1234 funciona, pero

http://server1:1234 falla

(Sin embargo, no entiendo por qué no usó el hostsarchivo que podría resolverlo). Pero luego otra persona respondió que netshhará el trabajo.
Así que supongo que me estoy perdiendo algo aquí.


Sé perfectamente para qué archivo de hosts se usa, lo hago todos los días durante los últimos 1 años. No entiendo cómo el código en mi pregunta es diferente del archivo de hosts. Parece que ambos hacen lo mismo. Y lamentablemente, no proporcionó ninguna diferencia en su respuesta
Royi Namir

Respuestas:


18

Lo usaría netsh httpal modificar la configuración de http.sys, que es totalmente diferente del hostsarchivo, trabajando en un nivel mucho más bajo de Windows. Este nivel es el que maneja el funcionamiento de un servidor HTTP localmente en su computadora , por lo que le preocupan las solicitudes que ingresan a su computadora, en lugar de las que salen a Internet.

Esta es la arquitectura en Windows para atender solicitudes de URL:

arquitectura http.sys

http.sys es el controlador que escucha el tráfico HTTP y envía las solicitudes basadas en la URL a los procesos, por lo que múltiples procesos pueden escuchar el tráfico HTTP en el mismo puerto.

http.sysse introdujo en Windows Server 2003. Antes, las aplicaciones acababan de abrir un socket en un punto final (IP: Puerto), escuchando el tráfico entrante y analizándolo. El problema era que esto hacía imposible que todas las aplicaciones usaran el puerto 80 (http) y 443 (https), ya que con el modelo de socket solo una aplicación puede escuchar un punto final en un momento dado.

Cuando el servidor web de Internet Information Services (IIS) , o cualquier aplicación que use la API del servidor HTTP, escuche en alguna ruta de solicitud HTTP, deben registrar un prefijo de URL http.sys. A este proceso lo llamamos registro .

Cuando una solicitud entrante es seleccionada http.sysy se entrega a la aplicación registrada correcta, esto se denomina enrutamiento .

Cualquier aplicación que se ejecute en modo administrador puede registrarse para una URL. Una aplicación que no sea de administrador debe usarse netsh http add urlacl para recibir la solicitud.

Conclusión: dado que no está creando un servidor URL de bajo nivel que se ejecuta en modo no administrador, no tiene ninguna razón para usarlo netsh http add urlacl.

Referencias


¿Puede proporcionar un escenario en el que algo como: "un usuario quiera conectarse a su iis con ..."
Royi Namir

Este es un método para que las aplicaciones trabajen en paralelo con IIS. Si se registra para un prefijo de URL, la aplicación recibirá todas sus solicitudes directamente y no a través de IIS, lo que significa que no necesita escribirse como una extensión de IIS, ni siquiera necesita instalar IIS (esto es en teoría, no lo hago ' No sé qué tan bien en la práctica http.sys es independiente de IIS).
harrymc
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.