Разработчики Mozilla, отвечающие за разработку Firefox, недавно объявили, что Ночные сборки Firefox, а также бета-версия уже включены по умолчанию протокол HTTP / 3.
Поддержка HTTP / 3 в Firefox основан на проекте neqo, разработанном Mozilla, который предоставляет клиентскую и серверную реализацию для протокола QUIC.
Код компонента для поддержки HTTP / 3 и QUIC написан на Rust. Для управления включением HTTP / 3 в about: config предоставляется опция «network.http.http3.enabled».
Из клиентского программного обеспечения уже добавлена экспериментальная поддержка HTTP 3 в Chrome и curl, а для серверов он доступен в nginx, а также в виде модуля nginx и тестового сервера от Cloudflare. Было запущено несколько тестовых сайтов для проверки работы клиентов HTTP / 3.
HTTP / 3 все еще находится в стадии черновика спецификации и он не был полностью стандартизирован IETF. HTTP / 3 определяет использование протокола QUIC в качестве транспорта для HTTP / 2.
протокол QUIC (Быстрое подключение к Интернету по протоколу UDP) с 2013 года он был разработан Google как альтернатива TCP + TLS для Интернета, который решает проблемы, связанные с длительным временем настройки и согласования TCP-соединений, и устраняет задержки из-за потери пакетов во время передачи данных.
QUIC - это надстройка над UDP, которая поддерживает мультиплексирование нескольких подключений. и предоставляет методы шифрования, эквивалентные TLS / SSL. Во время разработки стандарта в IETF в протокол были внесены изменения, в результате которых появились две параллельные ветки, одна для HTTP / 3, а другая совместимая с Google (Chrome поддерживает оба варианта).
Из ключевых особенностей QUIC выделяются следующие:
- Высокая безопасность, аналогичная TLS (по сути, QUIC предоставляет возможность использовать TLS поверх UDP).
- Контроль целостности передачи, предотвращение потери пакетов.
- Возможность мгновенного установления соединения (0-RTT, примерно в 75% случаев данные могут быть переданы сразу после отправки пакета установки соединения) и обеспечение минимальных задержек между отправкой запроса и получением ответа (RTT, Round Trip Time ).
- Используйте другой порядковый номер при повторной передаче пакета, что позволяет избежать неоднозначности в идентификации принятых пакетов и сократить время ожидания.
- Потеря пакета влияет на доставку только связанного с ним потока и не останавливает доставку данных в параллельных потоках, передаваемых через текущее соединение.
- Инструменты исправления ошибок, которые минимизируют задержки из-за повторной передачи потерянных пакетов. Использование специальных кодов исправления ошибок на уровне пакетов для уменьшения ситуаций, требующих повторной передачи потерянных пакетов данных.
- Границы криптографических блоков совпадают с границами пакетов QUIC, что снижает влияние потери пакетов на декодирование содержимого последующих пакетов.
- Нет проблем с блокировкой очереди TCP.
- Поддержка идентификатора подключения для сокращения времени, необходимого для настройки повторного подключения для мобильных клиентов.
- Возможность подключения расширенных механизмов для контроля перегрузки соединения.
- Используйте технику прогнозирования производительности в каждом направлении, чтобы обеспечить оптимальную скорость доставки пакетов, избегая попадания в состояние перегрузки, при котором происходит потеря пакетов.
- Замечательный прирост производительности и пропускной способности по TCP. Для видеосервисов, таких как YouTube, использование QUIC показало снижение буферизации при просмотре видео на 30%.
Наконец, в стабильной ветке включение HTTP / 3 запланировано на запуск Firefox 88, запланированный на 20 апреля.
Если вы хотите узнать об этом больше О включении поддержки HTTP / 3 в Firefox вы можете проверить подробности. По следующей ссылке.