HTTP/1.1 придуман в девяностых: одно соединение — один запрос за раз. Браузеры обходили это, открывая по 6 соединений на домен, но всё равно упирались в очередь: при 40 ресурсах остальные ждали.
HTTP/2 решает это мультиплексированием: по одному соединению идут все запросы одновременно. Плюс сжатие заголовков и приоритеты — важное грузится первым.
HTTP/3 идёт дальше и работает поверх QUIC (на UDP вместо TCP). Главное преимущество — потеря одного пакета не тормозит остальные потоки, что заметно на мобильных сетях и нестабильном Wi-Fi.
Что это даёт на практике
Ускорение тем заметнее, чем больше на странице отдельных файлов и чем хуже связь. На сайте с тремя ресурсами разницы почти не будет; на типичном сайте с 40–60 запросами выигрыш — сотни миллисекунд.
Побочный эффект: по HTTP/2 склейка всех файлов в один перестаёт быть безусловно верной — параллельная загрузка нескольких файлов кэшируется гибче.
Как включить
Никаких изменений в коде сайта не требуется — это настройка веб-сервера. Оба протокола работают только по HTTPS, так что сначала нужен сертификат.
Nginx:
listen 443 ssl;
http2 on;
(В версиях до 1.25 — listen 443 ssl http2;.)
HTTP/3 требует сборки nginx с поддержкой QUIC и открытого порта 443/UDP.
Apache — модуль mod_http2 и Protocols h2 http/1.1 в конфигурации.
Панель хостинга — обычно галочка «HTTP/2» в настройках сайта. Если её нет, спросите поддержку: чаще всего протокол просто не включён.
CDN отдаёт по HTTP/2 и HTTP/3 сразу, даже если ваш сервер старый.
Про CDN
CDN — сеть серверов в разных городах, которая раздаёт статику (картинки, стили, скрипты) с ближайшей к посетителю точки. Что это даёт:
- Меньше задержка — данные идут не через полстраны, а из соседнего города.
- Разгрузка сервера — статику отдаёт CDN, ваш сервер занят только генерацией страниц.
- Современные протоколы и сжатие из коробки.
- Устойчивость к всплескам трафика.
Нужен ли он вам? Если аудитория в одном городе, а сервер там же — почти нет. Если посетители по всей стране или за рубежом — да, разница ощутима. Российские варианты: Yandex Cloud CDN, Selectel, VK Cloud; международные — Cloudflare (у бесплатного тарифа хватает возможностей для обычного сайта).
Как проверить
- Пункт аудита «Версия протокола HTTP».
- В браузере:
F12→ Network → правый клик по шапке таблицы → включите колонку Protocol. Увидитеh2,h3илиhttp/1.1по каждому запросу. - Из консоли:
curl -I --http2 https://example.ru/
Первая строка ответа покажет версию: HTTP/2 200.
Обратите внимание: сторонние ресурсы (счётчики, шрифты, виджеты) идут по протоколу своих серверов — на них ваша настройка не влияет.