Почему HTTP/2?

поддержка http2
поддержка http2

HTTP/2 на данный момент является весьма необходимым обновлением, используемом для управления связью между веб-серверами и браузерами.

Всемирная паутина в целом работает на протоколе передачи гипертекста HTTP, впервые данный протокол был реализован еще в 1989 году, а последний крупный апгрейд был выполнен в 1999 году, интернет был совсем не тот в те дни. Большинство веб — сайтов были на основе текста с очень малым количеством изображений, скриптов и стилей, видео было еще более редким.

Сегодня веб-сайты являются гораздо более интерактивным, с изображениями, анимацией, стилями, пользовательскими шрифтами и многим другим.

Постоянно возрастающее количество запрашиваемых ресурсов и растущий размер страниц привело к замедлению времени загрузки страницы. Пользователи не любят ждать, даже задержка в течении нескольких секунд может заставить перейти к сайту конкурента. Появление мобильного телефона не сделало для разработчиков работу легче, так как устройства, подключенные к сетям мобильной связи, как правило, медленнее, и даже больше ограниченны в пропускной способности.

Разработчики пытались решить проблему объединением нескольких файлов в один, реализовывая различные методы для общих вэб-элементов, оптимизируя запросы и другие различные варианты, что бы уменьшить количество нагрузки и пропускную способность, необходимой для загрузки страниц.

В итоге поиск баланса при обмене запросов и ускорением доставки данных стало формой искусства, при огромной конкуренции разработчиков. В конце концов, эти оптимизации могут идти бесконечно, но требуется изменение базовой технологии.

Введение HTTP/2

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

SPDY, сетевой протокол , разработанный Google, реализовывает многие функции и преимущества, которые HTTP/2, в конечном счете выполняет и был по большому счету прототипом.

SPDY была реализована во многих технологиях обмена данных между браузером и сервером, но, при дальнейшем развитии Google решил принизить протокол SPDY в пользу HTTP/2. Например, в Chrome 51, SPDY была полностью удалена из веб-браузера.

Преимущества HTTP/2

HTTP/2 был разработан для современного Интернета, но по-прежнему имеет связь с HTTP/1.1. Обратная совместимость гарантирует, что браузеры, которые поддерживают протокол могут использовать преимущества, но те, которые до сих пор не может работать, не влияя на рабочий процесс пользователя. Вот некоторые из преимуществ HTTP/2:

  • Header Compression: заголовок HTTP будет значительно уменьшен в размере;
  • Multiplexing: несколько запросов могут обслуживаться одновременно по одной линии связи;
  • HTTP/2 Server Push: данные могут быть переданы клиенту, прежде чем они могут быть запрошены;
  • Prioritization: есть возможность создать приоритеты и уровни зависимостей, для определения, какие действия должны выполняться первыми;
  • Binary: HTTP/2 представляет собой двоичный протокол, что делает его намного более эффективным при передаче данных.

HTTP/2 особенно полезен при работе с TLS соединениями. Соединение TLS может быть довольно долгим, но благодаря сниженной латентности и мультиплексированию, другие запросы могут выполнять свою работу без блокировки.

HTTP/2 Производительность

Две компании, которые являются синонимом веб-производительности являются CloudFlare и Akamai. Обе эти компании предоставляют CDN и другие решения для повышения производительности и надежности веб-сайтов и обе поддерживают HTTP/2.

Для того, чтобы решить необходим ли HTTP/2, давайте посмотрим на демо, которые они обеспечивают ,чтобы продемонстрировать некоторые из преимуществ.

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

Демонстрация http/2 CloudFlare
Демонстрация http/2 CloudFlare

Демо Akamai довольно похоже по результатам:

Демо http/2 Akamai
Демо http/2 Akamai

Еще один пример теста производительности от Goland. Это демо, снова загружает кучу ресурсов , но дополнительно позволяет установить задержку на запрос, чтобы действительно показать преимущества HTTP/2. Без задержек, разница между HTTP/2 и HTTP/1.1 была 569ms против 3227ms. Если мы добавим 200мс латентности, результаты выглядят совсем иначе с HTTP/2 загрузки страницы в 839ms по сравнению с 9095ms, что он принял HTTP/1.1:

http/2 Goland
http/2 Goland

HTTP/2 поддержка браузеров

HTTP/2 уже реализован для многих языков, серверов и браузеров. Такие браузеры как Chrome и Firefox имеют полную поддержку протокола HTTP/2. Пограничный Microsoft и Safari браузеры от Apple поддерживают HTTP/2, но только через безопасные соединения. Мобильные версии Chrome и Safari также предполагают поддержку для протокола HTTP/2.

Скорее всего , ваши пользователи способны использовать протокол, но даже если нет, HTTP/2 полностью обратно совместим, поэтому вам не придется беспокоиться.

Использование HTTP/2 в стеке

Когда дело доходит до вашего стека технологий, будь то на  IIS,  Apache,  NGINX, или любой из  этих технологий, вы можете легко включить HTTP/2. Поскольку протокол HTTP/2 имеет обратную совместимость, вам не нужно вносить какие — либо изменения в свой реальный код. По состоянию на 1.6 выпуска Golang, стандартная библиотека HTTP фактически использует доступный HTTP/2 по умолчанию при поддержки браузера.

Будущее HTTP/2

HTTP/2 был стандартизирован в 2015 году и с тех пор многие сайты начали его использовать. Переход не дошел до широких масс в целом, хотя, об этом слишком рано говорить, когда и что будет с HTTP, но на официальных  HTTP/2 домашней странице часто задаваемых вопросов, уже есть статья о HTTP/3.

Вывод

HTTP/2 представляет собой объемное и довольно позднее обновление к протоколу HTTP. Преимущества нового протокола являются мультиплексирование, сжатие заголовка, двоичный формат, push-сервер, приоритезация ресурсов, а также обратную совместимость. 

HTTP/2 готов к использованию сегодня и доступны для большинство технологических стеков. Так как он имеет обратную совместимость, что позволяет ему на сервере довольно легко, и если вы еще не сделали этого, вы должны включить его сегодня!

Почему HTTP/2?
5 (100%) - 3

Почему HTTP/2?: 2 комментария

Добавить комментарий