Что нужно знать владельцам сайтов о протоколе HTTP/2. Читайте на Cossa.ru

10 марта 2016, 10:00
3

Что нужно знать владельцам сайтов о протоколе HTTP/2

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

Что нужно знать владельцам сайтов о протоколе HTTP/2
-1-

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

Первое описание протокола HTTP (Hyper Text Transfer Protocol) было опубликовано в 1991 году, к 1999 году была утверждена следующая версия — HTTP 1.1. Её поддерживают и используют до сих пор. Однако за 17 лет размер сайтов значительно вырос — для загрузки одной страницы передается около 1,9 МБ данных.

HTTP/1.1 перестал справляться с нагрузкой. В протоколе ограничено количество одновременных подключений, и страницы с контентом загружаются медленно. Для ускорения можно пойти путем оптимизации на уровне сайта: подключить CDN, настроить кеширование, объединить несколько элементов в один, удалить необязательные символы из javascript и CSS-стилей, распределить сайт по разным хостам и т.д. Некоторые приемы оказываются действенными, а какие-то иначе как костылями не назвать.

Кардинальным решением проблемы — улучшением протокола — занялись инженеры Google еще в 2009 году. Они провели серьезную работу по оптимизации, и появился протокол SPDY. Он действительно ускоряет работу сайтов, протокол поддерживают почти все браузеры, но для его работы нужна поддержка на стороне сервера, а модули есть только для Apache и Nginx.

Новый HTTP/2 опирается на SPDY. При этом он обратно совместим с HTTP/1.1: нет необходимости прямо сейчас переводить сайт на новый протокол — какое-то время он поработает и на старом, только чуть медленнее.

Эффективная и выгодная реклама с сервисом от МегаФона

Широкий выбор рекламных каналов, более 100 параметров по интересам, подробная аналитика и другие возможности уже ждут в Личном кабинете. А еще кешбэк 100% за запуск рекламы в первый месяц и еще 10% — каждый месяц.

Узнать больше >>

Реклама. ПАО «МегаФон». ИНН 7812014560. ОГРН 1027809169585. ERID LjN8K1P7y.


-2-

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

Несколько запросов передаются в рамках одного соединения. В HTTP/1.1 для каждого запроса на текст, стили или картинку устанавливается отдельное TCP-соединение, а количество одновременных TCP-соединений ограничено. Из-за этого страницы с большим количеством статического контента загружаются медленнее. При использовании HTTP/2 браузер выполняет несколько запросов в рамках одного соединения — это называют мультиплексированием. Статические элементы загружаются параллельно, и скорость работы сайта вырастает.

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

Повышается безопасность. Для HTTP/2 шифрование не обязательно, но трендсеттеры среди браузеров — Google Chrome и Mozilla Firefox — внедрили HTTP/2-протокол только для зашифрованных соединений. Если вы задумались о переходе на HTTP/2, сначала переведите сайт на HTTPS. В качестве бонуса вы получите улучшение позиции в органической выдаче Google и использование возможностей HTML5 на 100% ― например, геолокацию.

Меняется порядок приоритизации. В HTTP/1.1 предусмотрена возможность назначать приоритет на основе зависимостей — браузер просит сервер загружать заданный контент в первую очередь. Например, сначала сервер отдает CSS-файлы или JavaScript, а потом — HTML или изображения. В HTTP/2 приоритизация является желательным методом. Если ее не настроить, мультиплексирование будет работать не так, как должно. Ресурсы, которые можно подгрузить позже, будут занимать отдельную полосу, забирать на себя часть мощности, а это приведёт к снижению скорости.


-3-

На что стоит обратить внимание при оптимизации

HTTP/2 обратно совместим с HTTP/1.1. Это означает, что спешить с переводом сайта на новый протокол не нужно — какое-то время он будет работать почти так же, как раньше.

Постепенно, по мере перехода популярных веб-серверов и веб-браузеров на HTTP/2, работа сайта начнет замедляться. Это связано не только непосредственно с протоколом, но и с приемами по оптимизации сайта — то, что работало для HTTP/1.1, станет неактуальным или замедлит работу с HTTP/2.

Продолжайте объединять изображения в спрайты. В HTTP/1.1 для ускорения загрузки небольшие изображения объединяли в одно — спрайт-файл. Браузер делал один запрос вместо сотни и быстрее подгружал сайт. Мультеплексирование в HTTP/2 решило эту проблему, хотя объединение изображений с одной страницы улучшает сжатие и снижает общий объём загружаемых данных.

Стоит отказаться от встраивания изображений с DataURI и конкатенации. В HTTP/2 лучше отказаться от встраивания изображений с использованием Data URI. Этот прием часто используют с конкатенацией JS и CSS, чтобы обойти лимит на количество HTTP-запросов. Из-за этого пользователь загружает много лишних файлов, есть трудности с кешированием. Если HTTP-запросы не требуют существенных затрат ресурсов, то без неё вполне можно обойтись. Загрузка множества небольших файлов стилей никакой проблемы не составит. Не будет и трудностей с истечением сроков действия и кэшированием.

Доменное шардирование теперь не нужно. В HTTP/1.1 есть ограничение на количество открытых соединений, чтобы его обойти приходится загружать статические ресурсы с нескольких поддоменов. Такой приём называется доменным шардированием: его используют, как правило, для ускорения загрузки страниц с большим количеством изображений. При HTTP/2 вы можете запрашивать необходимое количество ресурсов, и потребность в распределении контента по поддоменам отпадает. Более того, шардирование снизит производительность, так как создаст дополнительные соединения и будет замедлять загрузку.


-4-

Когда планировать переход на HTTP/2?

Однозначного ответа на этот вопрос нет — все зависит от особенностей вашего проекта.

Сейчас HTTP/2 поддерживают Chrome, Firefox, Opera, Edge, Safari — если большая часть ваших посетителей использует эти браузеры, то стоит задуматься о переходе.

Если у вас много мобильного трафика — переходите на HTTP/2 как можно скорее. На смартфонах и планшетах преимущества нового протокола станут особенно заметными. Однако если основной мобильный трафик идет из Украины, спешить с переходом не стоит — многие пользователи предпочитают браузер Opera Mini, который пока не поддерживает HTTP/2.


-5-

Где узнать технические подробности

Если вы планируете перейти на HTTP/2, то отправьте технический вариант статьи вашему веб-мастеру или программисту.

переход на HTTP/2


Публикуется на правах рекламы


Читать по теме: Что такое протокол HTTP/2 и чем он полезен для сайтов?


Мнение редакции может не совпадать с мнением автора. Если у вас есть, что дополнить — будем рады вашим комментариям. Если вы хотите написать статью с вашей точкой зрения — прочитайте правила публикации на Cossa.


Телеграм Коссы — здесь самый быстрый диджитал и самые честные обсуждения: @cossaru

📬 Письма Коссы — рассылка о маркетинге и бизнесе в интернете. Раз в неделю, без инфошума: cossa.pulse.is

✉️✨
Письма Коссы — лаконичная рассылка для тех, кто ценит своё время: cossa.pulse.is