Что нужно знать владельцам сайтов о протоколе 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: нет необходимости прямо сейчас переводить сайт на новый протокол — какое-то время он поработает и на старом, только чуть медленнее.

Продвижение медцентров и клиник: три кейса о SEO, TikTok и Instagram*

Как получить измеримые результаты в фарммаркетинге.

Показываем на примерах →

Спецпроект

-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 и чем он полезен для сайтов?

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

Источник: cossa.ru

Violettafan