3

Запустите Wireshark. Укажите IE9 на локальный, не маршрутизируемый IP-адрес. Вы увидите один пакет TCP SYN, пытающийся подключиться к хосту.

Теперь укажите IE9 на удаленный маршрутизируемый IP-адрес. Вы увидите 2 почти одновременных пакета TCP SNY.

Почему веб-браузер ведет себя по-разному при попытке получить маршрутизируемый IP-адрес?


Редактировать 1

Вот проволочный захват проблемы. Захват Wireshark

Pkt 1 - это SYN для не маршрутизируемого IP-адреса. Через 3 секунды он повторяется. 6 секунд после этого он пытается снова. На Pkt 4 IE9 отказался от первого сокета TCP и открыл другой (порт источника изменился). Есть повторы через 3 и 6 секунд.

Pkt 7 является SYN для маршрутизируемого IP-адреса. Pkt 8 - это еще один SYN для того же IP-адреса. Это второй сокет TCP (порт источника другой).


Изменить 2 Вот лучшая картинка, чтобы увидеть текст:Лучшее изображение, чем первое

2 ответа2

0

IE использует модель зоны, обрабатывая веб-сайты по-разному в зависимости от того, к какой зоне они принадлежат. Если ваш немаршрутизируемый IP-адрес считается частью зоны интрасети, ожидается, что он получит другое обращение. Это влияет не только на настройки безопасности; сайты в интрасети могут также отображаться с использованием доисторических стандартов рендеринга, даже если они имеют тип документа HTML5. (Примечание. Ваш тестовый IP-адрес может или не может рассматриваться как интрасеть, в зависимости от вашей конфигурации.)

Поскольку сайты в интрасети, как правило, имеют очень низкую задержку прохождения сигнала в обоих направлениях и высокую надежность, имеет смысл сохранять менее параллельными открытые соединения. Также возможно, что IE делает другие вещи по-другому (например, подготовка к загрузке определенных ресурсов, выборка значков, ...).

Я не смог найти ни одного документа, явно заявляющего, что любое такое поведение отличается в зависимости от зоны, но это мало что значит, когда дело доходит до странного поведения IE. Некоторые из упомянутых мной различий объясняются здесь, и в этом документе упоминается, что кэширование является отдельным для зон.

Даже если у вас не включена зона интрасети, я не удивлюсь, если в IE будет какая-то специальная обработка не маршрутизируемых IP-адресов (бессмысленное «игнорирование типа документа HTML5, если в зоне интрасети» показывает, какие странные вещи следует ожидать от IE).

Также обратите внимание на странные временные метки на скриншоте. Возможно, что-то не так с захватом или вашей интерпретацией.

TL; DR: не использовать IE. Если вы это сделаете, не удивляйтесь, если это делает странные вещи.

0

Вам действительно нужно посмотреть на потоки HTTP ниже, чтобы узнать, что происходит. Если вы не получаете тот же точный HTML-документ с вашего локального IP-адреса и IP-адреса, подключенного к Интернету, тогда вы ввели дополнительные переменные в свое исследование здесь.

Я бы сказал, что ваш браузер запрашивает favicon.ico, а также index.html с google.com. Это были бы два отдельных HTTP-запроса. Учитывая AJAX и такой Javascript, также могут быть вовлечены.

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