HTTP/2

Материал из Энциклопедия интернет-маркетинга MarketWiki

HTTP/2 - это вторая версия протокола передачи гипертекста, основанная на протоколе SPDY от Google, которая значительно улучшает производительность веб-страниц за счёт мультиплексирования (одновременной передачи нескольких запросов по одному соединению), сжатия заголовков (HPACK), приоритизации ресурсов и серверного пуша.

Протокол используется веб-разработчиками и администраторами для ускорения загрузки сайтов, особенно страниц с большим количеством ресурсов (CSS, JS, изображения). Например, сайт загружает HTML, CSS, JS и 20 изображений. В HTTP/1.1 браузер открывает 6-8 параллельных соединений и загружает ресурсы по очереди. В HTTP/2 все ресурсы загружаются по одному соединению одновременно, что сокращает время загрузки страницы на 20-50 процентов.

HTTP/2 был стандартизирован в 2015 году как развитие SPDY, разработанного Google. К 2026 году протокол поддерживается всеми современными браузерами и серверами, став стандартом де-факто для передачи веб-контента. Его преемником является HTTP/3, работающий поверх протокола QUIC.

Главное

[править]

HTTP/2 - это новый способ передачи данных между браузером и сервером. Вместо последовательной загрузки ресурсов (сначала 1 файл, потом другой) HTTP/2 загружает всё одновременно по одному соединению. Это как если бы в ресторане блюда приносили по мере готовности, а не ждали, пока приготовится весь заказ.

Проблемы HTTP/1.1

[править]

HTTP/1.1, разработанный в 1997 году, имел ряд ограничений, которые становились критическими по мере усложнения веб-страниц:

Проблема Описание
Head-of-line blocking (HOL blocking) Запросы передаются последовательно. Если 1 запрос медленный, остальные ждут
Ограниченное число соединений Браузер открывает 6-8 параллельных соединений на домен. Этого мало для современных сайтов с десятками ресурсов
Избыточность заголовков Каждый запрос передаёт одни и те же заголовки (cookie, user-agent), увеличивая объём данных
Отсутствие приоритизации Критические ресурсы (CSS, шрифты) загружаются вместе с некритичными (аналитика, реклама)

Как решает HTTP/2

[править]
Решение Описание
Мультиплексирование Несколько запросов передаются по одному TCP-соединению одновременно. HOL blocking устранён
Сжатие заголовков (HPACK) Заголовки сжимаются и кэшируются. Повторяющиеся заголовки не передаются повторно
Приоритизация Браузер может указать важность ресурсов (high, medium, low). Критичные ресурсы загружаются первыми
Серверный пуш (Server Push) Сервер может отправить ресурсы (CSS, JS) ещё до того, как браузер их запросил

Влияние на Core Web Vitals

[править]
Метрика Как HTTP/2 улучшает
LCP (Largest Contentful Paint) Параллельная загрузка ресурсов сокращает время появления основного контента
INP (Interaction to Next Paint) Быстрая загрузка JavaScript и CSS ускоряет обработку взаимодействий
TTFB (Time To First Byte) Мультиплексирование и сжатие заголовков сокращают время установки соединения

Требования и настройка

[править]
Требование Описание
HTTPS HTTP/2 требует использования HTTPS (шифрование)
Поддержка сервера Nginx (версии 1.9.5+), Apache (2.4.17+), большинство CDN (Cloudflare, AWS CloudFront) поддерживают HTTP/2
Поддержка браузеров Все современные браузеры (Chrome, Firefox, Safari, Edge) поддерживают HTTP/2 с 2015-2016 годов

Пример настройки в Nginx:

server {
    listen 443 ssl http2;
    server_name example.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
}

Сравнение HTTP/2 и HTTP/3

[править]
Критерий HTTP/2 HTTP/3
Транспортный протокол TCP QUIC (поверх UDP)
Head-of-line blocking Решён на уровне HTTP, но TCP всё ещё может блокироваться Полностью устранён
Скорость соединения Требуется TCP handshake + TLS 0-RTT для повторных соединений
Поддержка в 2026 Повсеместная Растущая (около 70 процентов браузеров)

Проверка HTTP/2 на сайте

[править]
Инструмент Как проверить
Chrome DevTools (Network) Открыть вкладку Network, кликнуть правой кнопкой на колонку «Protocol» и выбрать «h2» для запросов
KeyCDN HTTP/2 Test Онлайн-сервис, показывающий поддержку HTTP/2
curl curl -I --http2 -s https://example.com

Преимущества для SEO

[править]
Аспект Влияние
Скорость загрузки Прямой фактор ранжирования в Google и Яндексе
Мобильный трафик HTTP/2 особенно эффективен на мобильных устройствах с высокими задержками
Core Web Vitals Улучшение LCP, INP, CLS за счёт быстрой загрузки ресурсов

Часто задаваемые вопросы

[править]

Нужно ли что-то менять на сайте, чтобы использовать HTTP/2?

[править]

Обычно достаточно включить поддержку HTTP/2 на сервере и убедиться, что сайт работает по HTTPS. Код самого сайта менять не нужно. Многие хостинг-провайдеры включают HTTP/2 по умолчанию.

Как проверить, использует ли мой сайт HTTP/2?

[править]

Открыть Chrome DevTools (F12), перейти на вкладку Network, кликнуть правой кнопкой на заголовок таблицы и выбрать «Protocol». Если напротив запросов указано «h2» - HTTP/2 работает.

HTTP/2 - это то же самое, что и HTTPS?

[править]

Нет. HTTPS - это шифрование (безопасность). HTTP/2 - это протокол передачи (скорость). Но HTTP/2 требует HTTPS для работы, поэтому они часто идут вместе.

Что такое серверный пуш (Server Push) и нужен ли он?

[править]

Server Push - это механизм, при котором сервер отправляет ресурсы (CSS, JS, изображения) до того, как браузер их запросит. Это может ускорить загрузку, но требует осторожной настройки, чтобы не отправлять лишние ресурсы. В современных практиках Server Push используется редко, уступая место оптимизациям на уровне HTML.

Влияет ли HTTP/2 на SEO, если сайт уже быстрый?

[править]

Даже если сайт уже быстрый, HTTP/2 обеспечивает более стабильную производительность при пиковых нагрузках и на медленных соединениях (мобильный интернет). Это положительно влияет на поведенческие факторы, которые учитываются поисковыми системами.

Связанные термины

[править]