Ферма серверов IIS с ARR: почему HTTP_X_FORWARDED_FOR имеет номер порта ?

У меня настроена ферма серверов в IIS 8.5. Когда я проверяю заголовок HTTP_X_FORWARDED_FOR в моем коде приложения, он дает мне правильный IP-адрес, но содержит двоеточие и номер порта.

Например,

HTTP_X_FORWARDED_FOR    127.0.0.1:64031

Я знаю, что HTTP_X_FORWARDED_FOR может содержать список IP-адресов, разделенных запятыми, но я никогда не слышал, чтобы он содержал номера портов.

I ' Я не настроил явно 64031 как номер порта где-нибудь в моей настройке. Кроме того, кажется, что номер меняется случайным образом, что наводит меня на мысль, что это какой-то внутренний номер порта, выбранный IIS для связи между «внешним» прокси-сервером веб-фермы и внутренним физическим веб-сайтом.

Я не видел, как это задокументировано где-нибудь в сети. Это стандартное поведение? Это Microsoft Magic? Это что-то особенное для моей установки? Что именно означает этот номер порта?

0
задан 10 February 2016 в 17:55
1 ответ

Одна возможность заключается в том, что IIS реализует RFC 7239 , RFC, который , наконец, ратифицировал / создал HTTP-заголовок Forwarded , чтобы заменить X-Forwarded-For X-Forwarded-Proto , и т. Д. ).

Я говорю это, потому что RFC 7239, раздел 5.3 определяет формат пересылаемых данных хоста; этот раздел, в свою очередь, направляет читателя к RFC 7230, раздел 5.4 , который определяет синтаксис / формат заголовка Host . И что примечательно в синтаксисе ABNF для Host :

Host = uri-host [ ":" port ] ;

Обратите внимание на дополнительный синтаксис для номера порта? В нем говорится, что номер порта разрешен , хотя, как вы правильно заметили, это очень необычно.

Так что это может быть не совсем «стандартным» поведением, но согласно RFC, это законно поведение. Может, сейчас это что-то конкретное для Microsoft? Но в приведенных выше RFC я впервые увидел упоминание формата заголовка X-Forwarded-For (косвенно через формат заголовка Forwarded ), имеющего порт номер, а также IP-адрес.

Надеюсь, это поможет!

1
ответ дан 4 December 2019 в 16:42

Теги

Похожие вопросы