Ускоренная загрузка и повышенная безопасность с HTTP3 в Debian Curl.
Хорошие новости для пользователей Debian!
HTTP3 появился в Debian Curl.
Начиная с curl 8.0.0-2, пользователи Debian теперь могут использовать HTTP3.
Это знаменует значительное обновление возможностей curl, повышая его производительность и эффективность в обработке веб-коммуникаций.
Как использовать HTTP3 с Curl
Эту новую возможность можно легко протестировать с помощью флага –http3-only.
Чтобы использовать HTTP3 с curl, просто выполните следующую команду:
Кроме того, вы можете протестировать его в контейнере с помощью Podman:
Обратите внимание, что команда apt теперь включает опцию –update для команд обновления и установки, хотя эта функция еще не доступна в стабильной версии.
📦 Команды Apt Update и Upgrade – в чем разница? – IT is good
Доступность в разных версиях Debian
Поддержка HTTP3 для curl распространяется на разные версии Debian.
- Debian Unstable: Уже доступна с 2 июля 2024 года.
- Debian Testing: Ожидается, что обновление будет получено в середине июля 2024 года, если не возникнет никаких проблем.
- Debian 12/bookworm Backports: Будет доступен, как только пакет поступит в тестирование Debian.
- Debian 12/bookworm: Из-за стремления Debian к стабильности, эта функция не будет поставляться в обычном репозитории для Debian 12. Однако пользователи могут получить доступ к ней через репозитории backports.
- Производные Debian: Переходящие выпуски получат её, когда она появится в Debian Testing. Стабильные производные включат её в свой следующий основной выпуск.
Преодоление технических трудностей
HTTP3 является относительно новым, и ни один дистрибутив Linux в настоящее время не поддерживает его в curl.
Основные проблемы включают:
- Поддержка OpenSSL: OpenSSL не имеет надлежащей поддержки HTTP3. Почти каждый пакет curl использует OpenSSL, что делает рискованным переход на бэкэнд TLS.
- Проблемы с производительностью: Производительность OpenSSL пока неудовлетворительна для HTTP3, начиная с версии 3.3.
- Совместимость с Nginx: Хотя nginx поддерживает HTTP3 через OpenSSL, он рекомендует использовать другие SSL-библиотеки, такие как BoringSSL, LibreSSL или QuicTLS для лучшей поддержки QUIC.
- Debian curl использует GnuTLS, который недавно получил неэкспериментальную поддержку HTTP3 через ngtcp2 и nghttp3. Это позволило включить HTTP3 в пакет Debian curl.
🖧 Как заставить curl использовать протокол HTTPS
Процесс внедрения
Пакет curl в Debian исторически включает в себя как OpenSSL, так и GnuTLS варианты libcurl.
Вариант GnuTLS уже может поддерживать HTTP3, а вариант OpenSSL – нет.
Предпринятые шаги
Разработчики Debian предприняли следующие шаги для реализации этой возможности в curl:
- Удовлетворить зависимости: Убедиться, что все необходимые зависимости соответствуют минимальным требованиям.
- Включить HTTP3 для GnuTLS libcurl: Активирована поддержку HTTP3 в версии libcurl для GnuTLS.
- Переключить TLS Backend: Изменен TLS-бэкенд в curl CLI с OpenSSL на GnuTLS.
Этот процесс включал обновление nghttp3, которое потребовало перехода из-за изменения SONAME, и обеспечение совместимости всех зависимостей.
Как только зависимости были установлены, включение HTTP3 стало простым делом.
Обеспечение стабильности
Чтобы не сломать окружение пользователей, были предприняты следующие шаги:
- No Direct Push to Stable: Это изменение не будет перенесено в текущие стабильные выпуски. Оно будет присутствовать в следующем стабильном выпуске (13/trixie).
- Анализ рисков: Оцените риск потери функциональности, ограниченной бэкендом OpenSSL. Единственная значимая функция, которая может быть затронута, – это экспериментальный Encrypted Client Hello (ECH), который пока не поддерживается стандартным OpenSSL.
- Тестирование CI: CI-тесты для всех пакетов, зависящих от curl, выполняются, чтобы убедиться в отсутствии сбоев. Результаты сравниваются с предшествующим изменению CLI curl с OpenSSL.
Если проблем не возникнет, то через пару дней (примерно 5 дней) curl с поддержкой HTTP3 будет перенесён в Debian Testing.
Если проблемы будут обнаружены, они будут устранены до миграции, которая, как ожидается, займёт менее месяца.
Заключение
Включение HTTP3 в curl в Debian – это значительный шаг вперёд.
Оно повышает производительность и возможности curl, согласуясь с последними веб-стандартами.
Несмотря на сложность этого обновления, разработчики Debian тщательно подошли к его реализации, чтобы обеспечить стабильность и надёжность для всех пользователей.