Что такое HTTP / 2 и для чего он нужен?



Попробуйте наш инструмент устранения неполадок

За последние 20 лет Всемирная паутина сильно изменилась. Все усовершенствованные веб-технологии требуют лучших и более быстрых решений и протоколов для связи и передачи файлов, чем существующие (HTTP), которые достигают своих технологических пределов.





Что такое HTTP / 2?

HTTP / 2 - новейшая версия гипертекста Транспортный протокол (HTTP) - базовый протокол, используемый во всемирной паутине. . Первоначально он был одобрен в феврале 2015 года. Это почти через 20 лет после первоначального HTTP. HTTP / 2 сокращает время загрузки и значительно улучшает взаимодействие между серверами и браузерами. Большинство браузеров уже добавили HTTP / 2, и с точки зрения пользователей это мало что изменило. Это основная причина, по которой многие из нас еще не читали и не слышали об этом.



Что делает HTTP / 2?

Как преемник HTTP, HTTP / 2 нацелен на улучшение всех характеристик HTTP. . Чтобы поддерживать обратную совместимость со старым протоколом, он сохраняет большую часть функциональности HTTP. Тем не менее, он содержит некоторые радикальные улучшения.

И HTTP, и HTTP / 2 определяют:

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

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



Мультиплексированные потоки

Двунаправленные серии кадров текстового формата, отправляемые по протоколу HTTP / 2 между одним сервером и клиентом, называются «потоками». HTTP может передавать только один из этих «потоков» за раз. После отправки потока есть временная задержка между передачей следующего потока.

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

Льготы:

  • Параллельные мультиплексированные запросы и ответы не блокируют друг друга.
  • Одно TCP-соединение может обеспечить эффективное использование сетевых ресурсов даже при передаче нескольких потоков данных.
  • Повышение производительности в Интернете, уменьшение задержки и улучшение результатов поиска.
  • Снижение капитальных и операционных затрат в работе сетевых и ИТ-ресурсов.

HTTP / 2 Server Push и Cache Push

Этот это возможность, которая позволяет серверам отправлять клиентам дополнительную кэшируемую информацию . Эта информация не запрашивается, но ожидается для будущих запросов. Если клиент запрашивает один ресурс A и известно, что другой ресурс B связан с запрошенным, сервер может протолкнуть B вместе с A вместо ожидания другого запроса клиента. Затем клиент сохраняет переданный ресурс B в кеш для использования в будущем. Эта функция сохраняет весь процесс приема-передачи и сокращает время задержки в сети. Google изначально представил Server Push в протоколе SPDY.

Еще одно усовершенствование HTTP / 2 - это Cache Push. Это заранее обновляет или делает недействительным кеш клиента. Это дает серверам возможность определять возможные выталкиваемые ресурсы, которые на самом деле не нужны клиентам.

Льготы:

  • Клиенты могут отказаться от проталкиваемых ресурсов, чтобы поддерживать эффективное хранилище кэшированных ресурсов (или даже полностью отключить Server Push).
  • Клиенты могут ограничивать количество одновременно мультиплексируемых толкаемых потоков.
  • Серверы могут отдавать приоритет переданным ресурсам. Это ключ к разнице в производительности между HTTP / 2 и HTTP.
  • Серверы могут мультиплексировать переданные ресурсы вместе с запрашиваемой клиентом информацией в одном и том же TCP-соединении.
  • Клиенты могут использовать кэшированные ресурсы на разных страницах.
  • Клиенты сохраняют загруженные ресурсы в кэш-память.

Бинарные протоколы

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

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

Льготы:

  • Предотвращение проблем безопасности, связанных с текстовой природой HTTP (например, атаки с разделением ответов).
  • Включает возможности HTTP / 2, такие как сжатие, приоритизация, мультиплексирование, эффективная обработка TLS и управление потоком.
  • Компактное представление команд, упрощающее выполнение и обработку.
  • Надежная и эффективная обработка данных между клиентами и серверами.
  • Повышенная пропускная способность и снижение задержки в сети.
  • Меньше шансов на ошибку по сравнению с HTTP.
  • Высокоэффективное использование сетевых ресурсов.
  • Низкие накладные расходы на анализ данных.
  • Меньший размер сети.

Приоритезация потока

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

Приоритизация потока работает с весом и зависимостями, назначенными каждому потоку. Несмотря на то, что все потоки по своей природе зависят друг от друга, за исключением того, что им присвоены веса от 1 до 256. Механизмы приоритезации потоков по-прежнему являются предметом дискуссий. Однако, когда приоритезация потоков сочетается с возможностью HTTP / 2 обработки нескольких потоков данных в одном TCP-соединении, это может привести к одновременному поступлению запросов к серверу с разным приоритетом.

Льготы:

  • Снижены негативные последствия проблем с задержкой в ​​сети.
  • Улучшенный пользовательский интерфейс и скорость загрузки страницы.
  • Оптимизация обмена данными между серверами и клиентами.
  • Высокоэффективное использование сетевых ресурсов.
  • Уменьшено время доставки для запросов основного контента.

Сжатие заголовков с отслеживанием состояния

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

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

Льготы:

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

Реальные преимущества HTTP / 2

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

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

Более дешевый высокоскоростной Интернет - HTTP / 2 увеличивает эффективность передачи данных. Это позволяет интернет-провайдерам сократить общие расходы, сохраняя при этом стандарты высокоскоростного интернета.

Безопасность - HTTP / 2 не уязвим для угроз, нацеленных на текстовые протоколы прикладного уровня. Кроме того, он использует подход «Security by Obscurity» для защиты передачи конфиденциальных данных между клиентами и серверами.

Широкий охват - Преимущества HTTP / 2 снижают эффективность Интернета для провайдеров. Это приведет к более широкому охвату Интернета на мировом уровне.

Media-Rich Web Experience - Технологические особенности и преимущества, которые HTTP / 2 привносит во всемирную паутину, обеспечивают инфраструктуру, способную доставлять мультимедийный контент с более высокой скоростью загрузки страниц.

Заворачивать

HTTP / 2 - относительно новый протокол, но его поддержка постоянно растет. В настоящее время большинство интернет-браузеров поддерживают HTTP / 2 (Microsoft Edge, Google Chrome, Safari, Firefox, Chrome для Android). Многие веб-серверы включают встроенную поддержку HTTP / 2 (Apache HTTP Server, Tomcat, NGINX). Без сомнения, HTTP / 2 - это протокол WWW будущего.

5 минут на чтение