Большинство владельцев сайтов устанавливают SSL-сертификат, видят замок в браузере и считают задачу решённой. Но HTTPS — это только начало. HTTP/2 и HTTP/3 меняют само устройство протокола и дают значительный прирост производительности. Разберём, что именно происходит и как это правильно настроить.
HTTPS: не только безопасность
HTTPS = HTTP + TLS-шифрование. Помимо безопасности, HTTPS даёт:
- Фактор ранжирования Google — с 2014 года HTTPS — подтверждённый фактор. Не решающий, но при равных условиях HTTPS-сайт получает приоритет.
- Доверие пользователей — 85% пользователей не совершат покупку на сайте без замка (исследование GlobalSign).
- Referrer данные — при переходе с HTTPS на HTTP браузер не передаёт Referer. Весь трафик с других HTTPS-сайтов будет засчитан как «прямой» в Analytics.
- HTTP/2 требует HTTPS — в браузерах HTTP/2 работает только по зашифрованному соединению.
HTTP/1.1 vs HTTP/2: в чём разница
HTTP/1.1 (стандарт с 1997 года) работает по принципу «один запрос — одно соединение». Браузеру нужно загрузить 50 файлов (стили, скрипты, шрифты, картинки) — он открывает 6-8 параллельных TCP-соединений и загружает файлы последовательно в каждом.
HTTP/2 (2015) революционно меняет подход:
- Мультиплексирование — все запросы идут через одно TCP-соединение параллельно, без очереди.
- Server Push — сервер может отправить CSS/JS ещё до того, как браузер запросил их (предиктивная доставка).
- Сжатие заголовков (HPACK) — HTTP-заголовки сжимаются, что особенно важно для API с повторяющимися заголовками.
- Приоритизация потоков — браузер может указать, какие ресурсы загрузить в первую очередь.
Прирост производительности HTTP/2
| Метрика | HTTP/1.1 | HTTP/2 | Улучшение |
|---|---|---|---|
| Загрузка 50 ресурсов | ~4.2 сек | ~1.8 сек | -57% |
| Количество TCP-соединений | 6-8 | 1 | -87% |
| Overhead заголовков | 100% | ~30% | -70% |
Настройка HTTP/2 в Nginx
server {
listen 443 ssl;
# Добавляем http2 к listen
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
# Только современные TLS версии
ssl_protocols TLSv1.2 TLSv1.3;
# HSTS — принудительный HTTPS на год
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
# Прочие security headers
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
root /var/www/html/public;
index index.php;
}Проверка HTTP/2:
curl -I --http2 https://example.com
# В ответе должно быть: HTTP/2 200HTTP/3 и QUIC: следующий шаг
HTTP/3 (2022) заменяет TCP на QUIC (UDP-based протокол от Google). Главные преимущества:
- Устранение head-of-line blocking — в HTTP/2 потеря одного пакета останавливает все потоки. В HTTP/3 потеря пакета влияет только на один поток.
- Быстрое соединение (0-RTT) — повторное соединение без handshake, экономия 1-2 round-trip.
- Работа при нестабильной сети — критично для мобильных пользователей.
Включение HTTP/3 в Nginx (Nginx 1.25+)
server {
listen 443 ssl;
listen 443 ssl http2;
# HTTP/3 слушает на UDP
listen 443 quic reuseport;
ssl_protocols TLSv1.2 TLSv1.3;
# Браузер узнаёт о HTTP/3 через этот заголовок
add_header Alt-Svc 'h3=":443"; ma=86400';
}HSTS: принудительный HTTPS
http://example.com — браузер автоматически откроет https://example.com без редиректа.После добавления в HSTS Preload List (hstspreload.org) браузеры будут знать о вашем HTTPS-требовании ещё до первого визита.
Миграция на HTTPS: чеклист без потери SEO
- Получите SSL-сертификат (Let's Encrypt — бесплатно).
- Настройте 301-редирект со всех HTTP URL на HTTPS.
- Обновите canonical теги — https:// вместо http://.
- Обновите sitemap.xml — все URL с https://.
- Проверьте mixed content (инструмент: WhyNoPadlock.com).
- Обновите адрес сайта в Google Search Console (добавьте https-версию).
- Обновите внутренние ссылки на абсолютные https-URL.
- Проверьте все внешние ресурсы: шрифты, скрипты, пиксели.
FAQ
Замедляет ли HTTPS сайт?
Незначительно. TLS handshake добавляет 10-50 мс при первом соединении. С HTTP/2 и TLS Session Resumption этот overhead практически незаметен. HTTP/2 с HTTPS работает быстрее HTTP/1.1 без шифрования для сайтов с большим количеством ресурсов.
HTTP/2 или HTTP/3 — что важнее включить?
В первую очередь HTTP/2 — широко поддерживается, даёт большой прирост. HTTP/3 добавит прирост для мобильных пользователей, но его поддержка в Nginx и других серверах ещё в активном развитии.
Потеряю ли позиции при миграции на HTTPS?
При правильной настройке 301-редиректов и обновлении sitemap — нет. Кратковременная флуктуация позиций возможна (1-2 недели), пока Google переиндексирует. В итоге HTTPS улучшает ранжирование.
Что такое HSTS Preload и нужен ли он?
HSTS Preload — список доменов в браузерах Chrome, Firefox, Safari, которые всегда открываются по HTTPS. Включайте если уверены, что навсегда останетесь на HTTPS (удалить из списка сложно).
Как проверить что HTTP/2 работает?
h2, HTTP/1.1 как http/1.1, HTTP/3 как h3.Настроим HTTPS, HTTP/2 и оптимизируем производительность
Аудит текущего состояния, настройка протоколов, устранение mixed content, настройка HSTS. Сайт начнёт работать быстрее и получит бонус в поиске.
Нужна помощь с производительность?
Обсудим задачу, предложим решение и рассчитаем стоимость — бесплатно, без обязательств.