web-dev-qa-db-fra.com

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

J'essaie de comprendre dans quel scénario il me faudra utiliser une telle commande:

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

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

Les docs ne sont pas très clairs (pour moi):

Netsh est un utilitaire de script en ligne de commande qui vous permet d'afficher ou de modifier, localement ou à distance, la configuration réseau d'un ordinateur en cours d'exécution. Netsh fournit également une fonctionnalité de script qui vous permet d'exécuter un groupe de commandes en mode de traitement par lots 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 veux l'utiliser?

Informations supplémentaires: J'ai lu cette question où un mec 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 fichier hosts qui pourrait le résoudre) - Mais une autre personne a répondu que netsh ferait l'affaire.
Donc, je suppose que quelque chose me manque ici.

10
Royi Namir

Vous devriez utiliser netsh http lors de la modification de la configuration de http.sys, qui est totalement différent du fichier hosts, fonctionnant à un niveau beaucoup plus bas de Windows. Ce niveau est celui qui gère l’exécution d’un serveur HTTP localement sur votre ordinateur . Il s’agit donc des requêtes entrant dans votre ordinateur plutôt que ceux qui sortent sur Internet.

Voici l'architecture sous Windows pour le traitement des demandes d'URL:

http.sys architecture

http.sys est le pilote qui écoute le trafic HTTP et envoie les requêtes en fonction de l'URL aux processus, afin que plusieurs processus puissent écouter le trafic HTTP sur le même port.

http.sys a été introduit dans Windows Server 2003. Avant, les applications venaient d'ouvrir un socket sur un noeud final (IP: Port), écoutant et analysant le trafic entrant. Le problème était qu’il était impossible pour toutes les applications d’utiliser les ports 80 (http) et 443 (https), car avec le modèle de socket, une seule application pouvait écouter un point de terminaison à un moment donné.

Lorsque le serveur Web Internet Information Services (IIS) , ou toute application utilisant l'API du serveur HTTP, écoute sur un chemin de requête HTTP, il doit s'enregistrer. un préfixe d'URL sur http.sys. Nous appelons ce processus registration .

Lorsqu'une demande entrante est sélectionnée par http.sys et qu'elle est envoyée à la bonne application enregistrée, cela s'appelle routing .

Toute application fonctionnant en mode administrateur peut enregistrer une URL. Une application non-administrateur doit utiliser netsh http add urlacl pour recevoir la demande.

Conclusion: puisque vous ne créez pas de serveur d'URL de bas niveau s'exécutant en mode non-administrateur, vous n'avez aucune raison d'utiliser netsh http add urlacl.

Références :

15
harrymc