Переход с HTTP/1.1 на HTTP/2 и HTTP/3 даёт заметный прирост производительности за счёт мультиплексирования, сжатия заголовков и уменьшения задержек. В статье разберём отличия протоколов и настройку для ускорения сайта.
Проверить поддержку HTTP/2 и метрик производительности можно через HTTP/2 Checker и Web Vitals на rechecker.ru.
Эволюция HTTP
| Версия | Год | Ключевые особенности |
|---|---|---|
| HTTP/1.0 | 1996 | Один запрос на соединение |
| HTTP/1.1 | 1997 | Keep-alive, pipelining (ограниченный) |
| HTTP/2 | 2015 | Мультиплексирование, бинарный протокол |
| HTTP/3 | 2022 | QUIC, UDP, нулевой RTT |
HTTP/2: основные преимущества
Мультиплексирование
Одно TCP-соединение обслуживает множество параллельных потоков. В HTTP/1.1 браузер ограничен 6 соединениями на домен — HTTP/2 снимает это ограничение.
HTTP/1.1: [Req1]----[Req2]----[Req3]---- (очередь)
HTTP/2: [Req1][Req2][Req3][Req4]... (параллельно)
Сжатие заголовков HPACK
Заголовки передаются в сжатом виде. Повторяющиеся поля (Host, User-Agent) кодируются по индексу.
Server Push
Сервер может отправить ресурсы до запроса клиента. Например, CSS и JS вместе с HTML.
Бинарный фрейминг
Данные передаются бинарными фреймами вместо текста. Меньше парсинга, меньше ошибок.
HTTP/3: что изменилось
QUIC вместо TCP
HTTP/3 работает поверх QUIC (Quick UDP Internet Connections) — протокола на базе UDP. Ключевые преимущества:
- Быстрое установление соединения — 0-RTT для повторных подключений
- Независимые потоки — потеря пакета в одном потоке не блокирует другие
- Встроенное шифрование — TLS 1.3 обязателен
- Устойчивость к смене сети — Connection ID сохраняется при переключении Wi-Fi/4G
Сравнение задержек
| Сценарий | HTTP/1.1 | HTTP/2 | HTTP/3 |
|---|---|---|---|
| Первое подключение | 2 RTT (TCP + TLS) | 2 RTT | 1 RTT (QUIC) |
| Повторное подключение | 2 RTT | 2 RTT | 0 RTT |
| Head-of-line blocking | Да | На уровне TCP | Нет |
Требования к серверу
Nginx (HTTP/2)
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
# Рекомендуемые настройки
http2_max_concurrent_streams 128;
http2_max_field_size 4k;
http2_max_header_size 16k;
}
Nginx (HTTP/3)
Требуется Nginx 1.25+ с модулем --with-http_v3_module:
server {
listen 443 quic reuseport;
listen 443 ssl http2;
server_name example.com;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_certificate /path/to/cert.pem;
ssl_certificate_key /path/to/key.pem;
add_header Alt-Svc 'h3=":443"; ma=86400';
}
Apache (HTTP/2)
<VirtualHost *:443>
ServerName example.com
Protocols h2 http/1.1
SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
</VirtualHost>
Проверка поддержки
Через браузер
DevTools → Network → Protocol: смотрите колонку "Protocol" (h2, h3, http/1.1).
Через curl
curl -sI --http2 https://example.com
curl -sI --http3 https://example.com # curl 7.66+
Онлайн-проверка
HTTP/2 Checker на rechecker.ru проверяет поддержку HTTP/2 и Brotli для любого домена. Web Vitals оценивает LCP, FID и CLS — метрики, на которые влияет выбор протокола.
Влияние на Core Web Vitals
Переход на HTTP/2 и HTTP/3 улучшает метрики производительности:
| Метрика | Влияние протокола |
|---|---|
| LCP (Largest Contentful Paint) | Снижение за счёт параллельной загрузки |
| FID (First Input Delay) | Косвенное — меньше блокирующих запросов |
| CLS (Cumulative Layout Shift) | Нет прямого влияния |
| TTFB (Time to First Byte) | HTTP/3: 0-RTT для повторных подключений |
Web Vitals на rechecker.ru измеряет LCP, FID и CLS для любой страницы — используйте для оценки эффекта от смены протокола.
Совместимость с CDN и прокси
| Сервис | HTTP/2 | HTTP/3 |
|---|---|---|
| Cloudflare | Да | Да |
| AWS CloudFront | Да | Да |
| Fastly | Да | Да |
| Nginx | Да | Да (1.25+) |
| HAProxy | Да | Экспериментально |
Корпоративные прокси и файрволы могут блокировать QUIC (UDP 443). В таких случаях соединение откатывается на HTTP/2.
Заголовок Alt-Svc
Для объявления поддержки HTTP/3 сервер отправляет:
Alt-Svc: h3=":443"; ma=86400
Браузер запоминает эту информацию и при следующем визите может сразу установить QUIC-соединение. Параметр ma — время жизни в секундах.
Метрики для мониторинга
После внедрения HTTP/2 или HTTP/3 отслеживайте:
- TTFB — время до первого байта ответа
- LCP — загрузка основного контента
- Доля трафика по протоколам — через аналитику или логи
- Ошибки соединения — QUIC может блокироваться файрволами
При проблемах с HTTP/3 проверьте, что UDP 443 не блокируется. Некоторые корпоративные сети разрешают только TCP.
Приоритет протоколов
Браузер выбирает протокол в порядке предпочтения: HTTP/3 (QUIC) > HTTP/2 (TLS) > HTTP/1.1. Если QUIC недоступен, используется HTTP/2. Fallback на HTTP/1.1 происходит для очень старых клиентов или при отключении HTTP/2 на сервере.
Проверка поддержки протоколов — первый шаг перед настройкой. Используйте HTTP/2 Checker для диагностики текущего состояния сайта. Метрики Web Vitals покажут влияние протокола на LCP, FID и CLS.
Итоги
HTTP/2 — обязательный минимум для современных сайтов. HTTP/3 — следующий шаг, особенно ценен для мобильного трафика и нестабильных сетей. Оба протокола обратно совместимы: браузер автоматически выберет лучший доступный вариант.
Настройка занимает несколько минут для Nginx или Apache. После включения протокола перезапустите сервер и проверьте результат через HTTP/2 Checker. Регулярный мониторинг Web Vitals поможет оценить влияние на пользовательский опыт. Сравните метрики до и после перехода на новый протокол. Ожидаемое улучшение TTFB при переходе на HTTP/3 — 10–30% для повторных посещений за счёт 0-RTT. Мобильные пользователи получают наибольший выигрыш из-за частых переключений сети. Head-of-line blocking на уровне TCP полностью устранён в QUIC. Потеря одного пакета не блокирует остальные потоки.
Рекомендации по внедрению
- Включите HTTP/2 — поддержка в браузерах 97%+, настройка простая
- Планируйте HTTP/3 — особенно для мобильных и нестабильных сетей
- Сохраняйте fallback — HTTP/1.1 для старых клиентов и прокси
- Мониторьте метрики — TTFB, LCP, FCP до и после перехода
- Проверяйте CDN — убедитесь, что провайдер поддерживает выбранный протокол
HTTP/2 уже стандарт для современных сайтов. HTTP/3 даёт дополнительный выигрыш при высокой задержке и потере пакетов. Проверьте текущее состояние через HTTP/2 Checker и Web Vitals.