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 hosts
archivo 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 hosts
archivo que podría resolverlo). Pero luego otra persona respondió que netsh
hará el trabajo.
Así que supongo que me estoy perdiendo algo aquí.
Respuestas:
Lo usaría
netsh http
al modificar la configuración dehttp.sys
, que es totalmente diferente delhosts
archivo, 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:
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.sys
se 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.sys
y 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
fuente