Гайды
Основы HTTP/2 и HTTP/3
Мультиплексирование и HPACK, QUIC и UDP, server push vs preload, ALPN и метрики после включения.
~8 мин чтения
Основы HTTP/2 и HTTP/3
HTTP/2 мультиплексирует запросы в одном TCP соединении (бинарные фреймы), server push (редко используется), заголовки HPACK. HTTP/3 переносит транспорт на QUIC (UDP): меньше head-of-line blocking при потере пакетов, быстрее установка (0-RTT с оговорками безопасности). Балансировщики — HAProxy vs Nginx.
1. HTTP/2 для сайта
Терминация TLS на Nginx/CDN с http2 на директиве listen 443 ssl http2;. Браузеры требуют TLS для h2 в вебе.
2. Серверный push
Загрузка «критического» CSS заранее — часто менее выгодна, чем хороший preload в HTML; оценивайте по метрикам.
3. HTTP/3 (QUIC)
- Отдельный UDP порт (часто 443 совмещён через ALT-SVC заголовок).
- Firewall должен пропускать UDP.
- CDN (Cloudflare, Fastly) часто включают h3 проще, чем свой origin.
4. Обратная совместимость
Клиент и сервер negotiate (ALPN): сначала h3 если доступен, иначе h2/h1.1.
5. Потоки, приоритеты и HPACK
В HTTP/2 несколько запросов делят одно TCP-соединение; stream prioritization и flow control влияют на порядок доставки фреймов. HPACK сжимает заголовки; дублирующиеся заголовки эффективнее за счёт таблицы — не раздувайте кастомными заголовками без нужды.
6. 0-RTT в QUIC
Early data ускоряет повторные соединения, но подвержено replay-атакам; для запросов с побочными эффектами (POST, платежи) сервер должен отклонять или ограничивать 0-RTT по политике.
7. Прокси и «прозрачный» HTTP/2
Внутри датацентра часто терминируют TLS на L7-балансировщике и идут к приложению по plain HTTP/2 или HTTP/1.1 — проще отладка и mTLS между слоями. Убедитесь, что приложение понимает X-Forwarded-Proto: https, иначе редиректы и secure-cookies сломаются.
8. Отладка с клиента
curl -I --http2 https://example.com
curl -I --http3 https://example.com # если сборка curl с QUIC
Заголовок ответа alt-svc: h3=":443" подсказывает браузеру попробовать QUIC к тому же хосту. Если h3 «не цепляется», проверьте UDP 443 до origin и политики CDN (иногда h3 только на edge).
9. Чек-лист
- Логи и WAF понимают QUIC, если включили h3.
- Не полагаться на порядок фреймов как на гарантию бизнес-логики.
- Тестировать TTFB и LCP до/после включения h2/h3.
- Проверить максимальный размер заголовков на прокси (HTTP/2 «large headers»).
- TLS 1.3 и корректные шифры на терминации — SSL/TLS.
Дальше: тег «Сеть»