Что такое HTTP/3 – текущее состояние нового протокола на основе UDP

В ноябре 2018 года целевая группа по разработке Интернета (IETF) собралась в Бангкоке и был принят новый интернет-проект. Транспортный протокол QUIC, преемник HTTP/2, был переименован в HTTP/3.

HTTP/3 основан на протоколе пользовательских дейтаграмм (UDP) и уже используется известными интернет-компаниями, такими как Google и Facebook. Если вы используете Chrome и подключаетесь к сервису Google, вы, вероятно, уже используете QUIC.

Новая версия протокола HTTP использует преимущества простого низкоуровневого протокола UDP и определяет многие новые функции, которые были в предыдущих версиях HTTP на уровне TCP. Это обеспечивает способ устранения ограничений в рамках существующей инфраструктуры Интернета.

Первые результаты являются многообещающими, и поскольку срок действия интернет-проекта IETF истек в августе 2021 года, мы можем ожидать, что HTTP/3 будет продвигаться как новый стандарт HTTP третьего поколения.

Прогресс HTTP/3 в 2021 году

Некоторые говорят, что стремление веб-индустрии к большей скорости и меньшей задержке соответствует только стремлению Google Chrome к увеличению объема оперативной памяти.

HTTP/3 на момент написания этой статьи является интернет-проектом или идентификатором IETF, что означает, что в настоящее время он рассматривается для предстоящего интернет–стандарта Целевой группой по разработке Интернета — международным органом по стандартизации Интернета, отвечающим за определение и продвижение согласованных стандартов интернет-протоколов, таких как TCP, IPv6, VoIP, Интернет вещей и т.д.

Это открытый орган, который объединяет веб-индустрию и способствует обсуждению направления Интернета. В настоящее время фаза “Интернет-проект” HTTP/3 является последней фазой, прежде чем предложения будут переведены на уровень Запроса комментариев (или RFC), который мы можем рассматривать, по сути, как официальные определения интернет-протокола.

Несмотря на то, что HTTP/3 еще не является официальным интернет-протоколом, многие компании и проекты уже начали добавлять поддержку HTTP/3 в свои продукты. Например он уже есть у Cloudflare.

Поддержка веб-браузерами протокола HTTP/3

В интерфейсе веб-браузера Chrome v87, Firefox v88 и Edge v87 по умолчанию включен HTTP/3. Для пользователей Safari опция включения HTTP/3 была добавлена в Safari Technology Preview v104. Однако поддержка HTTP/3 в настоящее время недоступна в стабильной версии Safari. А это значит что макинтошники, использующие Safari, не могут использовать HTTP/3.

Библиотечная поддержка HTTP/3

Для разработчиков, желающих использовать технологии HTTP/3, многие популярные библиотеки уже добавили поддержку HTTP/3. Поскольку HTTP/3 все еще находится на стадии интернет-проекта, вам нужно убедиться, что вы настроены на последние обновления при работе с одной из приведенных ниже библиотек.
  • Python – http3 и aioquic
  • Rust – quiche, neqo, и quinn
  • C – nghttp3 и lsquic
  • Go – quicgo
  • JavaScript – Node.js

Инфраструктурная поддержка HTTP/3

Что касается инфраструктуры, Cloudflare лидирует благодаря поддержке HTTP/3 во всей своей пограничной сети. Это означает, что сайты с включенным Cloudflare могут воспользоваться преимуществами повышения безопасности и производительности HTTP/3 без каких-либо дополнительных работ.

Чтобы проверить, поддерживает ли ваш сайт HTTP/3, вы можете использовать инструмент тестирования HTTP/3 Geekflare. Просто введите свой домен и нажмите кнопку “Проверить HTTP/3”, и инструмент сообщит вам, включен ли на вашем сайте HTTP/3.

Вы также можете использовать инспектор вашего браузера для проверки поддержки HTTP/3. В этом примере мы будем использовать последнюю версию Google Chrome, которая поддерживает HTTP/3.

Чтобы открыть инспектор, щелкните правой кнопкой мыши на странице, нажмите “Проверить” и перейдите на вкладку “Сеть”. В столбце “Протокол” вы можете увидеть протокол HTTP, используемый для подключения. Соединения HTTP/2 отображаются как “h2”, в то время как соединения HTTP/3 отображаются как “h3-XX” (XX относится к конкретному проекту HTTP/3).