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

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

Оцените материал
(1 Голосовать)

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

Почему 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

 

Прочитано 1547 раз

Интернет-альманах NSYS

Обладая более, чем 20-летним опытом в телекоммуникациях, работая с 1994 года на ИТ-рынке Беларуси, мы собираем полезные и интересные новости для наших читателей. Основные темы наших публикаций относятся к 4 темам: 1). полезные программы, 2). полезные веб-сайты, 3). бизнес в инернете и 4). поддержка владельцев сайтов на CMS Joomla. Подпишитесь на наши новости, чтобы не пропустить очередные выпуски дайджеста новостей NSYS. Дайджест выходит всего раз в неделю.

Recent Twitter Posts