По какому протоколу работает HTTP/3?

«По какому протоколу работает HTTP/3?» — вопрос из категории Сети, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

HTTP/3 работает поверх протокола QUIC (Quick UDP Internet Connections), который использует UDP в качестве транспортного протокола вместо TCP. Это фундаментальное изменение, направленное на решение проблем с задержкой и блокировкой головы очереди (Head-of-Line blocking), присущих TCP.

Ключевые преимущества QUIC для DevOps-инфраструктуры:

  • Сокращённое рукопожатие (0-RTT): Для повторных соединений данные можно отправлять сразу, что критично для скорости загрузки веб-приложений.
  • Встроенное шифрование: TLS 1.3 является неотъемлемой частью протокола, а не отдельным слоем.
  • Независимые потоки: Потеря пакета в одном потоке данных не блокирует остальные, что улучшает производительность при потере пакетов в сетях.
  • Упрощённая миграция соединений: Соединение сохраняется при смене IP-адреса клиента (например, при переключении с Wi-Fi на мобильную сеть).

Пример настройки поддержки HTTP/3 на веб-сервере (Nginx, начиная с версии 1.25.0):

server {
    listen 443 quic reuseport; # Активация QUIC
    listen 443 ssl;            # Резервный порт для HTTP/2 и HTTP/1.1
    http2 on;

    ssl_certificate     /etc/ssl/certs/example.com.crt;
    ssl_certificate_key /etc/ssl/private/example.com.key;

    # Обязательный заголовок для объявления поддержки HTTP/3
    add_header Alt-Svc 'h3=":443"; ma=86400';
}

Для балансировщиков нагрузки и мониторинга необходимо убедиться, что сетевые устройства (фаерволы, IDS/IPS) пропускают UDP-трафик на порт 443 и корректно его интерпретируют.