In quali scenari userò `netsh http add urlacl`?


14

Sto cercando di capire in quale scenario avrò bisogno di usare questo comando:

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

È come usare il hostsfile in cui posso collegare un indirizzo specifico al mio computer? (Non credo).

I documenti non sono così chiari (per me):

Netsh è un'utilità di scripting da riga di comando che consente di visualizzare o modificare localmente o in remoto la configurazione di rete di un computer attualmente in esecuzione. Netsh fornisce anche una funzione di scripting che consente di eseguire un gruppo di comandi in modalità batch su un computer specificato. Netsh può anche salvare uno script di configurazione in un file di testo a scopo di archiviazione o per aiutarti a configurare altri server.

Domanda:

Qualcuno può fornire uno scenario di vita reale (+ implementazione) in cui vorrò utilizzarlo?

Ulteriori informazioni: ho letto questa domanda in cui un ragazzo che ha tentato di accedere (tramite C #) a:

http://localhost:1234 funziona, ma

http://server1:1234 non riesce

(Tuttavia - non capisco perché non abbia usato il hostsfile che potrebbe risolverlo) - Ma poi un'altra persona ha risposto che netshfarà il lavoro.
Quindi immagino che mi manchi qualcosa qui.


So perfettamente quale file hosts viene utilizzato per lo faccio ogni giorno negli ultimi 1 anni. Non capisco come il codice nella mia domanda sia diverso dal file hosts. Sembra che entrambi facciano lo stesso. E purtroppo non hai fornito alcuna differenza nella tua risposta
Royi Namir il

Risposte:


18

Dovresti usarlo netsh httpquando modifichi la configurazione di http.sys, che è totalmente diversa dal hostsfile, lavorando su un livello molto più basso di Windows. Questo livello è quello che gestisce il funzionamento di un server HTTP localmente nel tuo computer , quindi si preoccupa delle richieste che arrivano sul tuo computer, piuttosto che di quelle che vanno su Internet.

Questa è l'architettura di Windows per servire le richieste URL:

architettura http.sys

http.sys è il driver che ascolta il traffico HTTP e invia le richieste in base all'URL ai processi, quindi più processi possono ascoltare il traffico HTTP sulla stessa porta.

http.sysè stato introdotto in Windows Server 2003. In precedenza, le applicazioni avevano appena aperto un socket su un endpoint (IP: Porta), ascoltando il traffico in entrata e analizzandolo. Il problema era che ciò rendeva impossibile per tutte le applicazioni utilizzare la porta 80 (http) e 443 (https), poiché con il modello di socket solo un'applicazione può ascoltare un endpoint in qualsiasi momento.

Quando il server Web Internet Information Services (IIS) o qualsiasi applicazione che utilizza l'API del server HTTP, è in ascolto su un percorso di richiesta HTTP, deve registrare un prefisso URL http.sys. Chiamiamo questo processo di registrazione .

Quando una richiesta in arrivo viene scelta http.syse consegnata all'applicazione registrata corretta, questa viene chiamata routing .

Qualsiasi applicazione in esecuzione in modalità amministratore può registrarsi per un URL. Un'applicazione non amministratore deve utilizzare netsh http add urlacl per ricevere la richiesta.

Conclusione: poiché non si crea un server URL di basso livello in esecuzione in modalità non amministratore, non si ha motivo di utilizzarlo netsh http add urlacl.

Riferimenti :


Puoi per favore fornire uno scenario in cui qualcosa del tipo: "un utente vuole connettersi al tuo IIS con ...."
Royi Namir,

Questo è un metodo per le applicazioni che lavorano fianco a fianco con IIS. Se registra un prefisso URL, l'applicazione riceverà tutte le sue richieste direttamente e non tramite IIS, il che significa che non deve essere scritto come estensione di IIS, né è necessario installare IIS (questo è in teoria - Non so quanto in pratica http.sys è indipendente da IIS).
harrymc,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.