Что нужно знать владельцам сайтов о протоколе HTTP/2
В 2015 году наконец-то утвердили новую версию сетевого протокола HTTP — HTTP/2. Сейчас идет его внедрение: протокол уже поддерживают веб-серверы Apache, Nginx, браузеры Chrome, Firefox, Opera, Edge, Safari. За полгода, с середины 2015 по январь 2016, количество сервисов и сайтов на HTTP/2 выросло на 6%.
Зачем понадобился 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: нет необходимости прямо сейчас переводить сайт на новый протокол — какое-то время он поработает и на старом, только чуть медленнее.
Успейте купить корпоративный пакет COSSA-2025 со скидкой!
Cossa анонсирует главный рекламный формат на весь 2025 год: сразу 8 различных опций.
Пакет идеально подходит для онлайн-сервисов, стартапов, интернет-компаний и digital-агентств.
Успейте приобрести пакет до повышения цены!
Почему 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 приоритизация является желательным методом. Если ее не настроить, мультиплексирование будет работать не так, как должно. Ресурсы, которые можно подгрузить позже, будут занимать отдельную полосу, забирать на себя часть мощности, а это приведёт к снижению скорости.
На что стоит обратить внимание при оптимизации
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 вы можете запрашивать необходимое количество ресурсов, и потребность в распределении контента по поддоменам отпадает. Более того, шардирование снизит производительность, так как создаст дополнительные соединения и будет замедлять загрузку.
Когда планировать переход на HTTP/2?
Однозначного ответа на этот вопрос нет — все зависит от особенностей вашего проекта.
Сейчас HTTP/2 поддерживают Chrome, Firefox, Opera, Edge, Safari — если большая часть ваших посетителей использует эти браузеры, то стоит задуматься о переходе.
Если у вас много мобильного трафика — переходите на HTTP/2 как можно скорее. На смартфонах и планшетах преимущества нового протокола станут особенно заметными. Однако если основной мобильный трафик идет из Украины, спешить с переходом не стоит — многие пользователи предпочитают браузер Opera Mini, который пока не поддерживает HTTP/2.
Где узнать технические подробности
Если вы планируете перейти на HTTP/2, то отправьте технический вариант статьи вашему веб-мастеру или программисту.
Публикуется на правах рекламы
Читать по теме: Что такое протокол HTTP/2 и чем он полезен для сайтов?
Мнение редакции может не совпадать с мнением автора. Если у вас есть, что дополнить — будем рады вашим комментариям. Если вы хотите написать статью с вашей точкой зрения — прочитайте правила публикации на Cossa.