Перейти к содержимому
Skip to content
← Все статьи

HTTP/2 vs HTTP/3: что нового и зачем переходить

Эволюция HTTP

HTTP/1.1 служил вебу более 15 лет, но его ограничения — блокировка head-of-line, максимум 6 параллельных соединений на домен — тормозили развитие. HTTP/2 (2015) решил многие проблемы, а HTTP/3 (2022) переписал транспортный уровень с нуля, перейдя с TCP на QUIC.

HTTP/2: ключевые улучшения

Мультиплексирование

HTTP/2 позволяет передавать множество запросов и ответов параллельно через одно TCP-соединение. В HTTP/1.1 для параллельности нужны отдельные соединения (до 6 на домен).

Сжатие заголовков (HPACK)

HTTP/1.1 отправляет заголовки текстом, часто повторяя одни и те же (Cookie, User-Agent). HPACK сжимает заголовки, используя таблицы и кодирование Хаффмана, уменьшая их размер на 85-95%.

Server Push

Сервер может отправить ресурс до того, как браузер его запросит. Например, вместе с HTML сразу отправить CSS и JS. На практике функция мало используется и будет удалена из браузеров.

Приоритизация потоков

Браузер указывает серверу приоритеты ресурсов: CSS и JS выше, чем изображения. Это позволяет серверу отправлять критические ресурсы первыми.

Проблема HTTP/2

HTTP/2 использует TCP, который имеет свою head-of-line blocking: потеря одного пакета блокирует все потоки в соединении, пока пакет не будет повторно передан. На сетях с потерями (мобильные, Wi-Fi) это может нивелировать преимущества мультиплексирования.

HTTP/3: революция на QUIC

QUIC вместо TCP

HTTP/3 работает поверх QUIC — протокола, разработанного Google и стандартизированного IETF. QUIC использует UDP, но реализует надёжность, контроль потока и шифрование на уровне протокола.

Решение head-of-line blocking

В QUIC потоки независимы. Потеря пакета одного потока не блокирует другие. На сетях с 1% потерь HTTP/3 может быть в 3 раза быстрее HTTP/2.

Встроенное шифрование (TLS 1.3)

QUIC интегрирует TLS 1.3 в протокол. Нет возможности использовать QUIC без шифрования. Это упрощает стек и повышает безопасность.

0-RTT (Zero Round Trip Time)

При повторном подключении к серверу QUIC может отправить данные с первым же пакетом, без ожидания handshake. Это сокращает задержку до нуля для повторных визитов.

Миграция соединений

В TCP соединение привязано к IP геолокацию и проверку портов. При переключении с Wi-Fi на мобильную сеть TCP-соединение разрывается. QUIC использует Connection ID, позволяя продолжить сессию на новом IP без пересоединения.

Улучшенный контроль потерь

QUIC имеет более точный RTT estimation и улучшенный congestion control по сравнению с TCP. Это особенно заметно на длинных и нестабильных соединениях.

Сравнение производительности

Как проверить поддержку

Используйте HTTP-чекер Enterno.io для проверки заголовков ответа вашего сервера. Заголовок alt-svc с параметром h3 указывает на поддержку HTTP/3.

В Chrome DevTools на вкладке Network столбец Protocol показывает h2 для HTTP/2 и h3 для HTTP/3.

Как включить HTTP/3

nginx (1.25.0+)

server {
    listen 443 ssl;
    listen 443 quic;          # HTTP/3
    http2 on;                  # HTTP/2

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    add_header Alt-Svc 'h3=":443"; ma=86400';
}

CDN

Большинство CDN (Cloudflare, Fastly, AWS CloudFront) поддерживают HTTP/3 «из коробки» — достаточно включить опцию в панели управления.

Итоги

HTTP/3 — значительный шаг вперёд, особенно для мобильных пользователей и нестабильных сетей. Ключевые преимущества: устранение HOL blocking, 0-RTT для повторных визитов, бесшовная миграция соединений. Если ваш CDN или веб-сервер поддерживает HTTP/3 — включайте. Для стабильных сетей разница будет минимальной, но для мобильных пользователей — заметной.

Проверьте ваш сайт прямо сейчас

Проверить →
Другие статьи: HTTP
HTTP
HTTP кэширование: Cache-Control, ETag, Expires
14.03.2026 · 11 просм.
HTTP
HTTP заголовки: полное руководство
10.03.2025 · 46 просм.
HTTP
Полный жизненный цикл HTTP-запроса: от URL до отрендеренной страницы
16.03.2026 · 21 просм.
HTTP
Заголовок X-Forwarded-For: определение IP клиента за прокси
16.03.2026 · 17 просм.