Более пристальный взгляд на HTTP/2: как это работает и что это значит для Интернета
Опубликовано: 2023-02-09В 2015 году была утверждена новая версия сетевого протокола HTTP — HTTP/2. Сейчас он становится все популярнее: протокол уже поддерживает веб-серверы Apache и Nginx, браузеры Chrome, Firefox, Opera, Edge и Safari, а также мобильные устройства.
Количество сервисов и сайтов HTTP/2 постоянно растет. В ближайшее время интернет ждет переход на новый протокол, ускоряющий загрузку сайта.
Давайте выясним, как это повлияет на создание сайта, SEO и другие аспекты.
Что такое 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/1 и HTTP/2 (любезно предоставлено: http://ruzhekov.com)
Плюсы и минусы 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:
Скорость загрузки увеличилась на 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, вам необходимо выполнить следующие шаги:
- Проверьте поддержку сервера: убедитесь, что ваше серверное программное обеспечение поддерживает HTTP 2. Популярное серверное программное обеспечение, такое как Apache, Nginx и IIS, имеет встроенную поддержку HTTP 2.
- Включить HTTP 2: после того, как вы подтвердите, что ваш сервер поддерживает HTTP 2, вам нужно будет включить его. Способ включения HTTP 2 зависит от используемого серверного программного обеспечения.
- Используйте HTTPS: HTTP 2 требует безопасного соединения с использованием HTTPS, поэтому на вашем сервере должен быть установлен SSL-сертификат.
- Обновите свой код. Если вы используете библиотеку или инфраструктуру, которая обрабатывает HTTP-соединения, убедитесь, что она поддерживает HTTP 2. Для работы с HTTP 2 некоторым библиотекам могут потребоваться обновления.
- Протестируйте свой сайт. После внесения необходимых изменений проверьте свой сайт, чтобы убедиться, что он работает с HTTP 2. Проверьте консоль браузера на наличие ошибок или предупреждений.
- Мониторинг производительности: регулярно контролируйте производительность своего сайта, чтобы убедиться, что он работает без сбоев с HTTP 2.
- Подумайте об оптимизации производительности. Внедрение 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-сертификат.