Более пристальный взгляд на HTTP/2: как это работает и что это значит для Интернета

Опубликовано: 2023-02-09

В 2015 году была утверждена новая версия сетевого протокола HTTP — HTTP/2. Сейчас он становится все популярнее: протокол уже поддерживает веб-серверы Apache и Nginx, браузеры Chrome, Firefox, Opera, Edge и Safari, а также мобильные устройства.

Количество сервисов и сайтов HTTP/2 постоянно растет. В ближайшее время интернет ждет переход на новый протокол, ускоряющий загрузку сайта.

Давайте выясним, как это повлияет на создание сайта, SEO и другие аспекты.

Оглавление
Что такое HTTP/2?
Разница между HTTP и HTTP 2
Плюсы и минусы HTTP/2
Зачем миру понадобился HTTP/2?
Действительно ли HTTP/2 быстрее?
Почему HTTP/2 работает быстрее?
Почему важно ускорить загрузку страниц сайта?
Как реализовать HTTP 2?
Заключение
Часто задаваемые вопросы

Что такое HTTP/2?

http 2
HTTP 2

Протокол HTTP/1.1 используется с 1999 года и со временем приобрел одну существенную проблему. Современные сайты, в отличие от того, что было популярно в 1999 году, используют множество различных элементов: сценарии JavaScript, стили CSS, а иногда еще и флеш-анимацию. Когда вы передаете их все, браузер и сервер создают несколько соединений.

Протокол HTTP/2 значительно увеличивает скорость работы сайтов за счет следующих особенностей:

  • Соединения: несколько запросов могут быть отправлены через одно TCP-соединение, а ответы могут быть получены в любом порядке. Нет необходимости поддерживать несколько соединений TCP.
  • Приоритеты потоков: клиент может устанавливать приоритеты сервера — какие ресурсы ему важнее других.
  • Сжатие заголовка: размер заголовка HTTP может быть уменьшен.
  • Push-отправка данных со стороны сервера: сервер может отправить клиенту данные, которые еще не были запрошены, например, на основе данных о следующей странице, которую собираются открыть пользователи.

Разработка протокола HTTP 2 была основана на протоколе SPDY, разработанном Google. Но Google уже объявил, что откажется от дальнейшей поддержки SPDY в пользу более перспективного HTTP/2.

Читайте: Почему ваш сайт WordPress работает медленно и как его ускорить?

Ключевые особенности HTTP/2

  • Мультиплексирование
  • Сервер Push
  • Сжатие заголовка
  • Приоритизация потоков
  • Управление потоком

Разница между HTTP и HTTP 2

Изменения, внесенные в первый протокол, не требуют значительных изменений в работе приложений. Хотя есть преимущество для новых приложений, которые будут работать на повышенной скорости. Ключевые различия между двумя протоколами были сравнены ниже:

Особенность HTTP HTTP2
Синтаксис Синтаксис высокого уровня тот же Синтаксис высокого уровня тот же
Фрейминг данных Измененный фрейм данных Усовершенствованное формирование данных
Запросы Ограниченные запросы Больше запросов
Отзывчивость сервера Ограниченная отзывчивость Повышенная отзывчивость
Эффективные сайты Минимальные запросы Повышенная эффективность
Блокировка в очереди Присутствует в HTTP Преодоление в HTTP2
Мультиплексирование Нет Подарок
Сжатие заголовка Нет Подарок
Запрос приоритетов Нет Подарок
Разница между HTTP и HTTP/2

Ниже приведено хорошее визуальное представление основных различий между HTTP/1 и HTTP/2 (любезно предоставлено: http://ruzhekov.com)

nginx http/2
нгинкс http/2

Плюсы и минусы HTTP/2

Плюсы

  • Улучшена скорость загрузки страницы
  • Лучшее использование сетевых ресурсов
  • Расширенный пользовательский опыт
  • Лучшая совместимость с современными веб-технологиями

Минусы

  • Протокол считается непоследовательным и сложным
  • Нарушает принцип многоуровневого протокола
  • Поставляется с высокой стоимостью шифрования
  • Не совместим с некоторыми устройствами, такими как маршрутизаторы
  • Отсутствует оппортунистическое шифрование

Зачем миру понадобился HTTP/2?

  • HTTP был впервые описан в 1991 году, а его последняя версия, HTTP/1.1, была утверждена в 1999 году и используется до сих пор.
  • Размеры веб-сайтов значительно выросли за последние годы, что привело к медленной загрузке и ограничению количества одновременных подключений с использованием HTTP/1.1.
  • Были реализованы временные решения, такие как оптимизация загрузки веб-сайта, но они предлагают только краткосрочное решение.
  • Инженеры Google начали работу над улучшением протокола в 2009 году, что привело к созданию протокола SPDY, который быстрее и поддерживается большинством браузеров, но требует поддержки на стороне сервера.
  • HTTP/2 основан на SPDY и обратно совместим с HTTP/1.1. Нет необходимости в немедленном обновлении, но со временем сайты могут загружаться медленнее на старом протоколе.

Действительно ли HTTP/2 быстрее?

Эксперты HttpWatch провели несколько тестов и обнаружили серьезное ускорение с HTTP 2.

На скриншоте ниже показана скорость загрузки страницы при использовании HTTP/1.1:

http 2 ss1
HTTP 2 SS1

А на этом скриншоте — результат использования HTTP 2:

http 2 ss2
HTTP 2 СС2

Скорость загрузки увеличилась на 23%. Эксперты HttpWatch также отмечают, что технология еще не полностью оптимизирована, и ожидают реального ускорения до 30%.

Почему HTTP/2 работает быстрее?

  • Несколько запросов, отправленных в рамках одного соединения в HTTP/2 (мультиплексирование), приводят к более быстрой загрузке статических элементов.
  • Сжатие заголовков HTTP в HTTP/2 уменьшает объем данных между сервером и браузером, высвобождая ресурсы
  • Повышенная безопасность благодаря зашифрованным соединениям для поддержки HTTP/2 браузерами, задающими тренды (Google Chrome, Mozilla Firefox).
  • Порядок приоритизации изменяется в HTTP/2, при этом приоритизация является желательным методом для правильного функционирования мультиплексирования.
  • Отсутствие настройки приоритетов в HTTP/2 может привести к снижению скорости, так как ресурсы, которые могут быть загружены позже, будут занимать отдельную полосу и часть мощности.

Почему важно ускорить загрузку страниц сайта?

  • Поддержка HTTP 2 не является прямым фактором ранжирования для Google.
  • Скорость загрузки — важный фактор ранжирования для Google.
  • HTTP/2 может положительно повлиять на скорость веб-сайта и положительно повлиять на ранжирование из-за поведенческих факторов.
  • Более быстрые страницы имеют более низкий процент отказов и могут привести к увеличению вовлеченности пользователей.
  • Google Bot скоро будет поддерживать HTTP/2
  • HTTP 2 может стать фактором ранжирования в будущем, поскольку поисковые системы меняют алгоритмы.

Преимущества для веб-разработчиков

HTTP 2 позволяет избавиться от старых уловок, призванных ускорить загрузку страниц без HTTP/2. Мы перечисляем:

  • Разделение домена или использование нескольких связанных доменов для загрузки файлов, чтобы установить больше TCP-соединений.
  • Спрайты картинок — объединение картинок в один файл для уменьшения количества запросов. Однако такой файл должен быть сначала полностью загружен для отображения. Кроме того, обработка больших файлов потребляет больше памяти.
  • Объедините файлы CSS и JavaScript, что также сделано для уменьшения количества запросов, а также увеличения использования памяти.
  • Встроенное включение или размещение CSS и JavaScript, а иногда даже картинок внутри HTML-файла, чтобы уменьшить количество подключений. При этом страница не отображается, пока не загрузится весь файл.
  • Домены без файлов cookie: загружайте изображения, CSS и JavaScript с другого домена, где не используются файлы cookie.

Как реализовать HTTP 2?

Чтобы внедрить HTTP 2, вам необходимо выполнить следующие шаги:

  1. Проверьте поддержку сервера: убедитесь, что ваше серверное программное обеспечение поддерживает HTTP 2. Популярное серверное программное обеспечение, такое как Apache, Nginx и IIS, имеет встроенную поддержку HTTP 2.
  2. Включить HTTP 2: после того, как вы подтвердите, что ваш сервер поддерживает HTTP 2, вам нужно будет включить его. Способ включения HTTP 2 зависит от используемого серверного программного обеспечения.
  3. Используйте HTTPS: HTTP 2 требует безопасного соединения с использованием HTTPS, поэтому на вашем сервере должен быть установлен SSL-сертификат.
  4. Обновите свой код. Если вы используете библиотеку или инфраструктуру, которая обрабатывает HTTP-соединения, убедитесь, что она поддерживает HTTP 2. Для работы с HTTP 2 некоторым библиотекам могут потребоваться обновления.
  5. Протестируйте свой сайт. После внесения необходимых изменений проверьте свой сайт, чтобы убедиться, что он работает с HTTP 2. Проверьте консоль браузера на наличие ошибок или предупреждений.
  6. Мониторинг производительности: регулярно контролируйте производительность своего сайта, чтобы убедиться, что он работает без сбоев с HTTP 2.
  7. Подумайте об оптимизации производительности. Внедрение HTTP 2 улучшит производительность вашего сайта, но все еще могут быть возможности для дальнейшей оптимизации. Например, объединение изображений в спрайты, сжатие изображений и уменьшение количества HTTP-запросов могут еще больше повысить производительность.

Заключение

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

Читайте: Полное руководство по миграции с HTTP на HTTPS в WordPress

Объединение изображений в спрайты улучшает сжатие и уменьшает загрузку данных, а отказ от использования URI данных для встраивания изображений может улучшить кэширование. Шардинг домена больше не нужен в HTTP 2, так как он допускает прямые запросы на ресурсы и может снизить производительность за счет создания дополнительных подключений.

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

Для чего используется HTTP2?

HTTP2 — это протокол, используемый для передачи данных через Интернет, повышающий скорость и безопасность доставки веб-контента, такого как страницы, изображения и видео, с сервера в браузер. Он предлагает более быструю загрузку страниц и повышенную эффективность по сравнению со своим предшественником, HTTP 1.1, позволяя отправлять и получать несколько запросов одновременно.

В чем разница между HTTP и HTTP2?

HTTP2 — это обновленная версия HTTP, которая быстрее и эффективнее своего предшественника. Он использует одно соединение для загрузки нескольких ресурсов, тогда как в HTTP требовалось несколько соединений. HTTP2 также обеспечивает сжатие данных и расстановку приоритетов, что ускоряет загрузку страниц для пользователей.

Почему http2 не используется широко?

HTTP2 широко не используется из-за проблем с совместимостью и реализацией. Некоторые старые устройства и программное обеспечение не поддерживают HTTP2, и для его реализации требуется выделенный сервер и SSL-сертификат.