8

Я пытаюсь понять, в каком сценарии мне нужно будет использовать такую команду:

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

Это как использовать файл hosts где я могу подключить определенный адрес к своему компьютеру? (Я так не думаю).

Документы не так понятны (для меня):

Netsh - это утилита сценариев командной строки, которая позволяет локально или удаленно отображать или изменять конфигурацию сети на компьютере, который в данный момент работает. Netsh также предоставляет функцию сценариев, которая позволяет вам запускать группу команд в пакетном режиме на указанном компьютере. Netsh также может сохранить сценарий конфигурации в текстовом файле для архивирования или для настройки других серверов.

Вопрос:

Может кто-нибудь, пожалуйста, предоставить сценарий реальной жизни (+ реализация), где я хочу его использовать?

Дополнительная информация: Я прочитал этот вопрос, где парень, который пытался получить доступ (через C #) к:

http://localhost:1234 работает, но

http://server1:1234 не удается

(Однако - я не понимаю, почему он не использовал файл hosts который мог бы его решить) - Но потом другой человек ответил, что netsh сделает эту работу.
Итак, я думаю, что я что-то здесь упускаю.

1 ответ1

13

Вы бы использовали netsh http при изменении конфигурации http.sys , которая полностью отличается от файла hosts и работает на гораздо более низком уровне Windows. Этот уровень является тот , который обрабатывает ход сервера HTTP локально на вашем компьютере, так что касается запросов , поступающих в ваш компьютер, а не те , выходя в Интернет.

Это архитектура в Windows для обслуживания URL-запросов:

архитектура http.sys

http.sys - это драйвер, который прослушивает HTTP-трафик и отправляет запросы на основе URL-адресов процессов, поэтому несколько процессов могут прослушивать HTTP-трафик на одном и том же порту.

http.sys был введен в Windows Server 2003. Ранее приложения просто открывали сокет на конечной точке (IP: порт), прослушивая входящий трафик и анализируя его. Проблема заключалась в том, что это делало невозможным для всех приложений использование портов 80 (http) и 443 (https), поскольку в модели сокетов только одно приложение может прослушивать конечную точку в любой момент времени.

Когда веб-сервер информационных служб Интернета (IIS) или любое приложение, использующее API-интерфейс HTTP-сервера, прослушивают какой-либо путь HTTP-запроса, им необходимо зарегистрировать префикс URL-адреса в http.sys . Мы называем этот процесс регистрацией .

Когда входящий запрос http.sys и доставляется в правильное зарегистрированное приложение, это называется маршрутизацией.

Любое приложение, работающее в режиме администратора, может зарегистрировать URL. Приложение без прав администратора должно использовать netsh http add urlacl для получения запроса.

Вывод: поскольку вы не создаете низкоуровневый URL-сервер, работающий в режиме без прав администратора, у вас нет причин использовать netsh http add urlacl .

Рекомендации :

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .