Вопрос или проблема
У меня была небольшая проблема с правильной идентификацией поддержки HTTPv3 поверх QUIC на моем веб-сервере IIS.
Когда я открываю Firefox – Инструменты разработчика и обращаюсь к своему сайту IIS, я вижу, что запросы в разделе “Сеть” выполняются по протоколу HTTPv3, что нормально. Однако, когда я проверяю Информацию о странице – Технические детали, я вижу, что соединение зашифровано с помощью TLS 1.3, а не QUIC, что не имеет смысла.
Когда я открываю Chrome – Инструменты разработчика и обращаюсь к своему сайту IIS, я вижу, что запросы в разделе “Сеть” выполняются по протоколу HTTPv2, что не совсем нормально. Однако, когда я проверяю “Безопасность”, я вижу, что соединение зашифровано через QUIC.
Это вообще имеет какой-то смысл? Есть ли способ правильно проверить HTTPv3 поверх QUIC на моем IIS?
Соединение зашифровано с помощью 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 может иметь разные реализации и поддержку различных версий протоколов. Важно помнить, что браузеры могут интерпретировать и обрабатывать сетевые протоколы по-разному:
- Тестовая Сеть: На некоторых версиях Chrome может не полностью поддерживаться HTTPv3, особенно на тестовых или экспериментальных настройках.
- Условия и Настройки: Проверьте настройки вашего Chrome: флаги, включающие поддержку QUIC. Это можно сделать через страницу
chrome://flags
, где вы можете включить Experimental QUIC version. - Использование SSL/TLS: Убедитесь, что ваше прикладное решение корректно настраивает TLS для поддержки QUIC.
Проверка Поддержки HTTPv3 на IIS
Несмотря на неоднозначность в браузерах, ваш тест с использованием curl и параметра --http3
подтвердил, что HTTPv3 работает на вашем сервере. Этот результат может служить окончательным показателем корректного функционирования новейших технологий.
Для дополнительной проверки, вы можете:
- Использовать инструменты, такие как nghttp3, которые могут помочь в тестировании связки HTTPv3 и QUIC.
- Проверить наличие ошибок в логах IIS, чтобы удостовериться, что все запросы проходят без проблем.
Заключение
Итогово, поведение Firefox и Chrome при определении HTTPv3 над QUIC может продиктовано особенностями работы каждого из браузеров и их реализацией поддержки данных протоколов. Тем не менее, наличие поддержки на уровне сервера подтверждено, и вы можете продолжать использование вашего IIS-сервера с HTTPv3. Не забывайте также поддерживать браузеры и обновлять их до последних версий для лучшего функционирования всех современных сетевых технологий.