Чем полезен HTTP/2.0
Группа экспертов W3C разработала новый протокол http/2, который ускоряет загрузку сайтов. Разбираемся, как это повлияет на сайтостроительство, SEO и другие аспекты.
Дата публикации: 19.05.2016
Что такое http/2 и зачем он нужен
Протокол http/1.1 используется с 1999 года и со временем обрел одну существенную проблему. Современные сайты в отличие от того, что было распространено в 1999-м году, используют множество различных элементов: скрипты на Javascript, стили на CSS, иногда еще и flash-анимацию. При передаче всего этого хозяйства между браузером и сервером создаются несколько соединений.
Протокол http/2 существенно ускоряет открытие сайтов за счет следующих особенностей:
-
Соединения: несколько запросов могут быть отправлены через одно TCP-соединение, и ответы могут быть получены в любом порядке, таким образом отпадает необходимость в том, чтобы держать несколько TCP-соединений.
-
Приоритеты потоков: клиент может задавать серверу приоритеты — какого типа ресурсы для него более важны, чем другие.
-
Сжатие заголовка: размер заголовка http может быть сокращен.
-
Push-отправка данных со стороны сервера: сервер может отправлять клиенту данные, которые тот еще не запрашивал, например, на основании данных о том, какую страницу скорее всего откроет пользователь следующей.
Разработка протокола http/2 основывалась на другом протоколе SPDY, который был разработан Google, но компания Google уже объявила о том, что откажется от дальнейшей поддержки SPDY в пользу более многообещающего http/2.
Действительно ли http/2 работает быстрее?
Специалисты из HttpWatch провели несколько тестов и выявили серьезное ускорение от использования http/2.
На скриншоте ниже показана скорость загрузки страницы с использованием http/1.1 |
А на этом скриншоте — результат с использованием http/2 |
Как видите, скорость загрузки выросла на 23%. Эксперты HttpWatch также отмечают, что технология пока не до конца оптимизирована, и ожидают реальное ускорение в районе 30%.
Однако не все эксперименты столь однозначны. На Хабре был описан эксперимент, поставленный командой Яндекс.Почты.
Тестировался протокол SPDY, не http/2, но напомним, что http/2 разрабатывался на основе SPDY и он очень близок к нему в плане используемых методов.
Команда Яндекс.Почты, протестировав SPDY, на части своих реальных пользователей установила, что среднее время загрузки изменилось всего лишь на 0,6%, и не превысило статистической погрешности.
Однако специалисты Яндекс.Почты обнаружили тем не менее положительный момент от использования SPDY. Поскольку число соединений с серверами уменьшилось (это ключевая особенность SPDY и http/2), то нагрузка на сервера заметно сократилась.
Команда облачного сервиса по ускорению и защите сайтов Айри.рф провела собственное тестирование, насколько HTTP/2.0 может быть полезен для ускорения сайтов. Для сайтов средней посещаемости (до 10 000 посетителей в сутки) дополнительно к уже примененным мерам по ускорению был включен HTTPS и HTTP/2.0. По результатам за месяц среднее время загрузки сайтов контрольной группы сократилось на 13–20% (данные собирались от реальных пользователей из браузера при помощи Performance Timing API). И это уже после стандартных мероприятий по оптимизации скорости загрузки — сжатию, кэшированию, объединению файлов и оптимизации изображений.
Почему так важно ускорение загрузки страниц сайта?
После показанных HttpWatch результатов в пору задуматься: «Ок, выиграли там что-то около трех десятых секунд на одной странице, что это даст мне как бизнесу?»
Оказывается, очень много. Вас вряд ли удивит тот факт, что пользователи часто уходят с сайта не дождавшись его загрузки до конца. Насколько сильно это влияет на бизнес? Специалисты Amazon подсчитали, что если время загрузки сайта Amazon по каким-то причинам увеличится всего лишь на одну секунду, это обойдется компании в 1,6 млрд. долларов недополученного дохода от потерянных продаж.
Специалисты Google также провели свои расчеты и убедились в том, что если время отклика поиска Google увеличится всего лишь на 0,4 секунды, то компания потеряет 8 миллионов показов страниц поиска в день! Представляете, сколько дохода недополучит компания от рекламы в поиске?
Возможно, мы не управляем проектами уровня Google или Amazon, но факт остается фактом — чем быстрее загружается сайт, тем больше дохода вы получаете.
Http/2 и SEO
А как с точки зрения SEO? Помогает ли http/2 ранжированию в поиске, а может быть вредит?
Конечно инженеры поисковых систем стараются держать в глубокой тайне алгоритмы ранжирования, чтобы у нас не было возможности создать «идеальную страницу» под какой-то поисковый запрос.
Джон Мюллер, аналитик из команды Google Webmaster Trends, в своем блоге написал, что наличие на сайте поддержки http/2 не является напрямую ранжирующим фактором в Google. В то же время скорость загрузки сама по себе является значимым фактором ранжирования, поэтому имеет смысл начать использовать http/2 для целей SEO-продвижения.
Он добавил, что само по себе ускорение работы сайта должно положительно влиять на ранжирование за счет поведенческих факторов. То есть у более быстрой страницы будет меньше процент отказов, скорее всего больше пользователей что-то сделают на такой странице, и таким образом будут влиять на повышение ранга страницы в поиске.
Однако Джон Мюллер также сообщил, что Googlebot скоро начнет поддерживать http/2, и кто знает, может быть в будущем наличие http/2 на сайте и станет ранжирующим фактором. Ведь поисковики постоянно меняют свои алгоритмы.
Какие браузеры уже поддерживают http/2?
Согласно данным CanIUse.com это следующие браузеры:
По данным CanIUse.com — это составляет порядка 70% трафика.
Понятно, что трафик на их сайт может отличаться от среднего по интернету, но это говорит о том, что уже достаточно большая доля посетителей вашего сайта может пользоваться браузерами, поддерживающими http/2.
Дает ли что-то http/2 веб-разработчикам?
Да! Http/2 позволяет избавиться от целого вагона старых трюков, призванных ускорить загрузку страниц без http/2. Перечислим их:
-
Домен-шардинг или использование множественных родственных доменов для скачивания файлов, чтобы позволить установить большее число TCP-соединений.
-
Спрайты из картинок — объединение картинок в один файл для снижения числа запросов. Однако такой файл должен сначала загрузиться целиком, прежде, чем будет показана хоть одна картинка. К тому же обработка больших файлов съедает больше памяти.
-
Объединение файлов CSS и Javascript, что также делается для снижения количества запросов, и также увеличивает занимаемую память.
-
Инлайнинг или помещение CSS и Javascript, а иногда даже и картинок внутрь HTML- файла, чтобы снизить число соединений. В то же время приводит к тому, что страница не показывается, пока весь файл не загрузится.
-
Домены без cookie: загрузка картинок, CSS и Javascript с другого домена, где не используются cookie.
В заключение отметим, что эпоха http/2 не за горами, многие браузеры уже поддерживают этот протокол. Его внедрение не требует никаких изменений в самом сайте: не нужно менять URLы страниц, не нужно менять ссылки, не нужно ставить редиректы, добавлять или менять какую-то разметку или указывать дополнительные данные для Google Search Console или Яндекс.Вебмастер. Внедрение http/2 происходит на той части сервера, которая отдает страницы пользователям, то есть на хостинге. Если вы пользуетесь внешним хостингом, то возможно, что ваши страницы уже отдаются в http/2 для поддерживаемых браузеров.
По материалам:
Полный текст статьи читайте на CMS Magazine