Браузеры Firefox и Chrome дают мне ложную информацию о HTTPv3 через QUIC.

Вопрос или проблема

У меня была небольшая проблема с правильной идентификацией поддержки HTTPv3 поверх QUIC на моем веб-сервере IIS.

Когда я открываю Firefox – Инструменты разработчика и обращаюсь к своему сайту IIS, я вижу, что запросы в разделе “Сеть” выполняются по протоколу HTTPv3, что нормально. Однако, когда я проверяю Информацию о странице – Технические детали, я вижу, что соединение зашифровано с помощью TLS 1.3, а не QUIC, что не имеет смысла.

Когда я открываю Chrome – Инструменты разработчика и обращаюсь к своему сайту IIS, я вижу, что запросы в разделе “Сеть” выполняются по протоколу HTTPv2, что не совсем нормально. Однако, когда я проверяю “Безопасность”, я вижу, что соединение зашифровано через QUIC.

Это вообще имеет какой-то смысл? Есть ли способ правильно проверить HTTPv3 поверх QUIC на моем IIS?

Вот скриншот из Firefox:
Firefox

Вот скриншот из Chrome:
Chrome

Соединение зашифровано с помощью TLS 1.3, а не QUIC, что не имеет смысла

Напротив, QUIC сам по себе не ведет переговоры о шифровании. Вместо этого текущая версия транспортного протокола QUIC фактически встраивает TLS 1.3 в качестве механизма шифрования. См. RFC 9000 (раздел 7), RFC 9001.

Хорошо, я смог запустить curl с поддержкой HTTPv3 на Windows. С помощью curl с опцией “–http3” я смог убедиться, что HTTPv3 работает поверх QUIC на моем IIS.

Мой первоначальный вопрос о HTTPv3 в браузерах все еще не объяснен. Поведение Firefox можно объяснить ответом от grawity_u1686. Однако ответ на поведение Chrome мне все еще неизвестен.

Ответ или решение

Проблема, с которой вы столкнулись при попытке определить поддержку HTTPv3 (также известного как HTTP/3) через QUIC на вашем IIS-сервере, представляет собой интересный случай, связанный с особенностями работы различных браузеров и пониманием современных протоколов. Давайте разберём эту ситуацию детально.

Понимание Протокола QUIC и HTTPv3

Прежде всего, важно отметить, что QUIC (Quick UDP Internet Connections) — это транспортный протокол, который разрабатывался с целью повышения производительности и безопасности соединений в интернете. Он включает в себя встроенную поддержку шифрования с использованием TLS 1.3, что и приводит к некоторым особенностям, которые вы наблюдаете.

Согласно спецификации (например, RFC 9000), QUIC действительно использует TLS 1.3 в качестве механизма шифрования. Это означает, что при использовании QUIC вы не увидите четкого разделения между самим QUIC и TLS, поскольку QUIC уже включает в себя элементы безопасности. Это объясняет, почему в Firefox вы видите, что соединение зашифровано с использованием TLS 1.3, когда используется HTTPv3: это нормально и ожидаемо.

Наблюдения в Браузерах

Firefox

Вы замечаете, что в Firefox Developer Tools при доступе к вашему IIS-сайту показывает, что запросы выполняются по протоколу HTTPv3, но в разделе сведений о странице упоминается, что соединение зашифровано с использованием TLS 1.3. Это нормальное явление, как упоминалось выше, поскольку HTTPv3 работает поверх QUIC, который в свою очередь использует TLS 1.3.

Chrome

В случае Chrome вы видите, что запросы отображаются как HTTP/2, но в разделе "Безопасность" указывается, что соединение зашифровано с использованием QUIC. Эта ситуация может вызывать недоумение, и здесь ключевым моментом является то, что Chrome может иметь разные реализации и поддержку различных версий протоколов. Важно помнить, что браузеры могут интерпретировать и обрабатывать сетевые протоколы по-разному:

  1. Тестовая Сеть: На некоторых версиях Chrome может не полностью поддерживаться HTTPv3, особенно на тестовых или экспериментальных настройках.
  2. Условия и Настройки: Проверьте настройки вашего Chrome: флаги, включающие поддержку QUIC. Это можно сделать через страницу chrome://flags, где вы можете включить Experimental QUIC version.
  3. Использование SSL/TLS: Убедитесь, что ваше прикладное решение корректно настраивает TLS для поддержки QUIC.

Проверка Поддержки HTTPv3 на IIS

Несмотря на неоднозначность в браузерах, ваш тест с использованием curl и параметра --http3 подтвердил, что HTTPv3 работает на вашем сервере. Этот результат может служить окончательным показателем корректного функционирования новейших технологий.

Для дополнительной проверки, вы можете:

  • Использовать инструменты, такие как nghttp3, которые могут помочь в тестировании связки HTTPv3 и QUIC.
  • Проверить наличие ошибок в логах IIS, чтобы удостовериться, что все запросы проходят без проблем.

Заключение

Итогово, поведение Firefox и Chrome при определении HTTPv3 над QUIC может продиктовано особенностями работы каждого из браузеров и их реализацией поддержки данных протоколов. Тем не менее, наличие поддержки на уровне сервера подтверждено, и вы можете продолжать использование вашего IIS-сервера с HTTPv3. Не забывайте также поддерживать браузеры и обновлять их до последних версий для лучшего функционирования всех современных сетевых технологий.

Оцените материал
Добавить комментарий

Капча загружается...