Em quais cenários vou usar o `netsh http add urlacl`?


14

Estou tentando entender em que cenário vou precisar usar esse comando:

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

É como usar o hostsarquivo em que posso conectar um endereço específico ao meu computador? (Acho que não).

Os documentos não são tão claros (para mim):

Netsh é um utilitário de script de linha de comando que permite exibir, local ou remotamente, ou modificar a configuração de rede de um computador que está sendo executado no momento. O Netsh também fornece um recurso de script que permite executar um grupo de comandos no modo em lote em um computador especificado. O Netsh também pode salvar um script de configuração em um arquivo de texto para fins de arquivamento ou para ajudá-lo a configurar outros servidores.

Questão:

Alguém pode fornecer um cenário da vida real (+ implementação) onde eu vou querer usá-lo?

Informações adicionais: Eu li esta pergunta onde um cara que tentou acessar (via C #) para:

http://localhost:1234 funciona, mas

http://server1:1234 falha

(No entanto - eu não entendo por que ele não usou o hostsarquivo que poderia resolvê-lo) - Mas outra pessoa respondeu que netshfará o trabalho.
Acho que estou perdendo alguma coisa aqui.


Eu sei perfeitamente o arquivo de hosts usado para fazê-lo todos os dias nos últimos 1 anos. Eu não entendo como o código na minha pergunta é diferente do arquivo hosts. Parece que os dois fazem o mesmo. E, infelizmente, você didnt fornecer qualquer diferença em sua resposta
Royi Namir

Respostas:


18

Você usaria netsh httpao modificar a configuração de http.sys, que é totalmente diferente do hostsarquivo, trabalhando em um nível muito mais baixo do Windows. Este nível é aquele que manipula a execução de um servidor HTTP localmente em seu computador , então está preocupado com os pedidos vindo em seu computador, em vez de os ir para fora para a Internet.

Esta é a arquitetura no Windows para atender solicitações de URL:

arquitetura http.sys

http.sys é o driver que escuta o tráfego HTTP e despacha solicitações com base na URL para processos, para que vários processos possam ouvir o tráfego HTTP na mesma porta.

http.sysfoi introduzido no Windows server 2003. Antes, os aplicativos apenas abriam um soquete em um nó de extremidade (IP: Porta), ouvindo o tráfego recebido e analisando-o. O problema era que isso tornava impossível para todos os aplicativos usar a porta 80 (http) e 443 (https), pois no modelo de soquete, apenas um aplicativo pode ouvir um nó de extremidade a qualquer momento.

Quando o servidor Web dos Serviços de Informações da Internet (IIS) ou qualquer aplicativo que use a API do HTTP Server escuta algum caminho de solicitação HTTP, eles precisam registrar um prefixo de URL http.sys. Chamamos esse processo de registro .

Quando uma solicitação de entrada é selecionada http.syse entregue no aplicativo registrado correto, isso é chamado de roteamento .

Qualquer aplicativo em execução no modo administrador pode se registrar para um URL. Um aplicativo não administrador precisa usar netsh http add urlacl para receber a solicitação.

Conclusão: Como você não está construindo um servidor de URL de baixo nível em execução no modo não administrador, não há motivos para usá-lo netsh http add urlacl.

Referências :


Você pode fornecer um cenário em que algo como: "um usuário quer se conectar a seus iis com ...."
Royi Namir

Este é um método para os aplicativos trabalharem lado a lado com o IIS. Se ele se registrar para um prefixo de URL, o aplicativo receberá todas as suas solicitações diretamente e não através do IIS, o que significa que não precisa ser gravado como uma extensão do IIS, nem é necessário instalar o IIS (isso é teoricamente - não na prática, o http.sys é independente do IIS).
precisa saber é
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.