Dans quels scénarios vais-je utiliser `netsh http add urlacl`?

14

J'essaie de comprendre dans quel scénario je devrai utiliser une telle commande:

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

Est-ce comme utiliser le hostsfichier où je peux connecter une adresse spécifique à mon ordinateur? (Je ne pense pas).

Les documents ne sont pas si clairs (pour moi):

Netsh est un utilitaire de script de ligne de commande qui vous permet, localement ou à distance, d'afficher ou de modifier la configuration réseau d'un ordinateur en cours d'exécution. Netsh fournit également une fonction de script qui vous permet d'exécuter un groupe de commandes en mode batch sur un ordinateur spécifié. Netsh peut également enregistrer un script de configuration dans un fichier texte à des fins d'archivage ou pour vous aider à configurer d'autres serveurs.

Question:

Quelqu'un peut-il s'il vous plaît fournir un scénario réel (+ mise en œuvre) où je voudrai l'utiliser?

Informations supplémentaires: j'ai lu cette question où un gars qui a essayé d'accéder (via C #) à:

http://localhost:1234 fonctionne, mais

http://server1:1234 échoue

(Cependant - je ne comprends pas pourquoi il n'a pas utilisé le hostsfichier qui pourrait le résoudre) - Mais alors une autre personne a répondu qui netshfera le travail.
Je suppose donc que je manque quelque chose ici.

Royi Namir
la source
Je sais parfaitement quel fichier hosts est utilisé, je le fais tous les jours depuis 1 an. Je ne comprends pas en quoi le code dans ma question diffère du fichier hosts. Il semble qu'ils fassent de même. Et malheureusement, vous n'avez fourni aucune différence dans votre réponse
Royi Namir

Réponses:

18

Vous utiliseriez netsh httplors de la modification de la configuration de http.sys, qui est totalement différente du hostsfichier, en travaillant sur un niveau beaucoup plus bas de Windows. Ce niveau est celui qui gère le fonctionnement d'un serveur HTTP localement sur votre ordinateur , il concerne donc les demandes qui arrivent sur votre ordinateur, plutôt que celles qui sortent sur Internet.

Voici l'architecture de Windows pour traiter les demandes d'URL:

Architecture http.sys

http.sys est le pilote qui écoute le trafic HTTP et envoie les demandes basées sur l'URL des processus, de sorte que plusieurs processus peuvent écouter le trafic HTTP sur le même port.

http.sysa été introduit dans Windows Server 2003. Auparavant, les applications venaient d'ouvrir un socket sur un point de terminaison (IP: Port), écoutant le trafic entrant et le analysant. Le problème était que cela rendait impossible pour toutes les applications d'utiliser les ports 80 (http) et 443 (https), car avec le modèle de socket, une seule application peut écouter un point de terminaison à un moment donné.

Lorsque le serveur Web Internet Information Services (IIS) , ou toute application qui utilise l'API HTTP Server, écoute sur un chemin de requête HTTP, ils doivent enregistrer un préfixe d'URL sur http.sys. Nous appelons ce processus d' enregistrement .

Lorsqu'une demande entrante est sélectionnée par http.syset envoyée à la bonne application enregistrée, cela s'appelle le routage .

Toute application s'exécutant en mode administrateur peut s'inscrire pour une URL. Une application non administrateur doit utiliser netsh http add urlacl pour recevoir la demande.

Conclusion: comme vous ne créez pas de serveur URL de bas niveau fonctionnant en mode non administrateur, vous n'avez aucune raison de l'utiliser netsh http add urlacl.

Références :

harrymc
la source
Pouvez-vous s'il vous plaît fournir un scénario où quelque chose comme: "un utilisateur veut se connecter à votre iis avec ...."
Royi Namir
Il s'agit d'une méthode permettant aux applications de travailler côte à côte avec IIS. Si elle s'enregistre pour un préfixe d'URL, l'application recevra toutes ses demandes directement et non via IIS, ce qui signifie qu'elle n'a pas besoin d'être écrite en tant qu'extension d'IIS, et vous n'avez même pas besoin d'installer IIS (c'est en théorie - je ne le fais pas) t savoir à quel point en pratique http.sys est indépendant de IIS).
harrymc