HTTP/2

HTTP/2 – это новая версия протокола HTTP, который используется для передачи данных в Интернете. Он был разработан как улучшенная версия HTTP/1.1 с целью повышения производительности и эффективности передачи данных.

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

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

HTTP/2 является первой новой версией HTTP с версии HTTP 1.1, которая была стандартизирована RFC 2616 в 1999. Рабочая группа представила на рассмотрение протокол HTTP/2 на рассмотрение W3C IESG как Proposed Standard в декабре 2014 и IESG утвердила его к публикации как Proposed Standard 17 февраля 2015 года. Спецификация HTTP/2 была опубликована как RFC 7540 в мае 2015 года.

Усилия по стандартизации являются ответом на разработку SPDY (HTTP-совместимый протокол, разработанный Google и поддерживаемый браузерами Chrome, Opera, Firefox, Internet Explorer 11, Safari и Amazon Silk).

9 февраля 2015 года Google объявила о планах прекратить поддержку SPDY в Chrome в начале 2016 года в пользу HTTP/2 (Chrome 40+).

По данным W3Techs на 1 февраля 2021 года, как минимум 50,2 % из 10 млн самых популярных интернет-сайтов поддерживают протокол HTTP/2.

Цели:

  • Добавить механизмы согласования протокола, клиент и сервер могут использовать HTTP 1.1, 2.0 или, гипотетически, иные, не HTTP-протоколы.
  • Поддержать совместимость с многими концепциями HTTP 1.1, например по набору методов доступа (GET, PUT, POST и т. п.), статусным кодам, формату URI, большому количеству заголовков
  • Уменьшение задержек доступа для ускорения загрузки страниц, в частности путём:
  • Сжатия данных в заголовках HTTP
  • Использования push-технологий на серверной стороне
  • Конвейеризации запросов
  • Устранения проблемы блокировки «head-of-line» протоколов HTTP 1.0/1.1
  • Мультиплексирования множества запросов в одном соединении TCP
  • Сохранение совместимости с широко внедрёнными применениями HTTP, в том числе с веб-браузерами (полноценными и мобильными), API, используемыми в Интернете, веб-серверами, прокси-серверами, обратными прокси-серверами, сетями доставки контента.

Протокол HTTP/2 является бинарным. По сравнению с предыдущим стандартом изменены способы разбиения данных на фрагменты и транспортирования их между сервером и клиентом.

В HTTP/2 сервер имеет право послать то содержимое, которое ещё не было запрошено клиентом. Это позволит серверу сразу выслать дополнительные файлы, которые потребуются браузеру для отображения страниц, без необходимости анализа браузером основной страницы и запрашивания необходимых дополнений.

Также часть улучшений получена (в первом черновике HTTP/2, который представлял собой копию спецификации SPDY) за счёт мультиплексирования запросов и ответов (для преодоления проблемы «head-of-line blocking» протоколов HTTP/1.x), а также за счёт сжатия передаваемых заголовков и введения явной приоритизации запросов.

Особенно эффективно использовать HTTP/2 в сайтах, построенных на основании концепции Web3.

Обсуждение закрыто.