In welchen Szenarien verwende ich `netsh http add urlacl`?

14

Ich versuche zu verstehen, in welchem ​​Szenario ich einen solchen Befehl verwenden muss:

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

Ist es so, als würde hostsich die Datei verwenden, in der ich eine bestimmte Adresse mit meinem Computer verbinden kann? (Ich glaube nicht).

Die Dokumente sind (für mich) nicht so klar:

Netsh ist ein Befehlszeilen-Dienstprogramm, mit dem Sie die Netzwerkkonfiguration eines aktuell ausgeführten Computers entweder lokal oder remote anzeigen oder ändern können. Netsh bietet auch eine Skriptfunktion, mit der Sie eine Gruppe von Befehlen im Stapelmodus für einen bestimmten Computer ausführen können. Netsh kann ein Konfigurationsskript auch zu Archivierungszwecken oder zur Konfiguration anderer Server in einer Textdatei speichern.

Frage:

Kann jemand bitte ein reales Szenario (+ Implementierung) liefern, in dem ich es verwenden möchte?

Zusätzliche Informationen: Ich habe diese Frage gelesen , bei der ein Typ, der versucht hat (über C #) auf Folgendes zuzugreifen:

http://localhost:1234 funktioniert, aber

http://server1:1234 schlägt fehl

(Allerdings - ich verstehe nicht, warum er nicht die hostsDatei verwendet hat, die es lösen könnte) - Aber dann hat eine andere Person geantwortet, netshdie den Job erledigen wird.
Ich vermisse hier wohl etwas.

Royi Namir
quelle
Ich weiß genau, wofür die Hosts-Datei verwendet wird. Ich mache das in den letzten 1 Jahren jeden Tag. Ich verstehe nicht, wie sich der Code in meiner Frage von der Hosts-Datei unterscheidet. Es scheint, dass beide dasselbe tun. Und leider haben Sie keinen Unterschied in Ihrer Antwort
geliefert

Antworten:

18

Sie würden verwenden, netsh httpwenn Sie die Konfiguration von ändern http.sys, die sich völlig von der hostsDatei unterscheidet, und auf einer viel niedrigeren Windows-Ebene arbeiten. Diese Ebene ist die, dass Griffe von einem HTTP - Server das läuft lokal auf Ihrem Computer , so befasst sich mit Anfragen kommen in Ihrem Computer, anstatt die , die gehen aus dem Internet.

Dies ist die Architektur in Windows zum Bereitstellen von URL-Anforderungen:

http.sys Architektur

http.sys ist der Treiber, der den HTTP-Verkehr abhört und Anforderungen basierend auf der URL an Prozesse sendet, sodass mehrere Prozesse den HTTP-Verkehr auf demselben Port abhören können.

http.syswurde zuvor in Windows Server 2003 eingeführt. Zuvor haben Anwendungen nur einen Socket auf einem Endpunkt (IP: Port) geöffnet, den eingehenden Datenverkehr abgehört und analysiert. Das Problem war, dass dies es allen Anwendungen unmöglich machte, Port 80 (http) und 443 (https) zu verwenden, da beim Socket-Modell jeweils nur eine Anwendung einen Endpunkt abhören kann.

Wenn der IIS- Webserver (Internet Information Services) oder eine Anwendung, die die HTTP-Server-API verwendet, einen HTTP-Anforderungspfad abhört, muss ein URL-Präfix registriert werden http.sys. Wir nennen diesen Prozess Registrierung .

Wenn eine eingehende Anfrage von ausgewählt http.sysund an die richtige registrierte Anwendung gesendet wird, wird dies als Routing bezeichnet .

Jede Anwendung, die im Administratormodus ausgeführt wird, kann sich für eine URL registrieren. Eine Nicht-Administrator-Anwendung muss netsh http add urlacl zum Empfangen der Anforderung verwendet werden.

Schlussfolgerung: Da Sie keinen einfachen URL-Server erstellen, der im Nicht-Administrator-Modus ausgeführt wird, haben Sie keinen Grund zur Verwendung netsh http add urlacl.

Verweise :

harrymc
quelle
Können Sie bitte ein Szenario
angeben,
Dies ist eine Methode, mit der Anwendungen Seite an Seite mit IIS arbeiten können. Wenn es sich für ein URL-Präfix registriert, erhält die Anwendung alle ihre Anforderungen direkt und nicht über IIS. Dies bedeutet, dass es nicht als Erweiterung von IIS geschrieben werden muss und dass Sie IIS nicht einmal installieren müssen (dies ist theoretisch - ich weiß nicht). Ich weiß nicht, wie gut http.sys in der Praxis von IIS unabhängig ist.
Harrymc