Рубрики
Без рубрики

HTTP/2 – Секретное оружие gRPC

Всем привет! В этой лекции мы узнаем, что такое HTTP / 2, как он работает, что делает его отличным… С тегами grpc, новички, go, java.

Всем привет! В этой лекции мы узнаем, что такое HTTP/2, как он работает, что делает его отличным оружием gRPC, и сравним его со старым HTTP/1.1.

Вот ссылка на полный плейлист курса gRPC на Youtube Репозиторий Github: pcbook-go и pcbook-java Репозиторий Gitlab: pcbook-go и pcbook- Ява

Почему HTTP/2?

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

HTTP/2 также сжимает заголовки с помощью PACK, что позволит снизить накладные расходы и повысить производительность.

Мультиплексирование возможно в HTTP/2, что означает, что клиент и сервер могут отправлять несколько запросов и ответов параллельно по одному TCP-соединению. Это поможет уменьшить задержку и улучшить использование сети.

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

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

Как вы можете видеть, HTTP/2 загружается почти в два раза быстрее, чем HTTP/1.1.

Как работает HTTP/2

Итак, как HTTP/2 работает под капотом? Его логическую структуру можно представить так, как показано на этом рисунке:

Существует одно TCP-соединение, которое передает несколько двунаправленных потоков. Каждый поток имеет уникальный идентификатор и несет несколько двунаправленных сообщений.

Каждое сообщение, которое может быть запросом или ответом, разбивается на несколько двоичных фреймов. Фрейм – это наименьшая единица, которая содержит различные типы данных, например ЗАГОЛОВКИ, НАСТРОЙКИ, ПРИОРИТЕТ, ДАННЫЕ и так далее.

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

HTTP/2 против HTTP/1.1

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

  • Во-первых, HTTP/2 – это двоичный протокол, в то время как HTTP/1.1 – это текстовый протокол.
  • Заголовки сжимаются в HTTP/2, в то время как в HTTP/1.1 это обычный текст
  • HTTP/2 допускает мультиплексирование, HTTP/1.1 – нет
  • Мы можем отправлять несколько запросов и ответов в одном соединении в HTTP/2, в то время как в HTTP/1.1 мы можем отправлять только 1, что означает, что мы должны создать несколько TCP-соединений для отправки нескольких запросов.
  • Серверный push возможен с помощью HTTP/2, но не в HTTP/1.1
  • HTTP/2 был выпущен недавно, в 2015 году, в то время как HTTP/1.1 был выпущен в 1997 году.

Итак, на этом мы заканчиваем нашу лекцию о HTTP/2. В следующей лекции мы узнаем о различных вариантах использования gRPC и сравним его с REST.

Если вам понравилась статья, пожалуйста подпишитесь на наш канал Youtube и следите за нами в Twitter для получения дополнительных руководств в будущем.

Если вы хотите присоединиться ко мне в моей нынешней удивительной команде в Voodoo, ознакомьтесь наши вакансии здесь . Удаленно или на месте в Париже/Амстердаме/Лондоне/Берлине/Барселоне при спонсорской поддержке visa.

Оригинал: “https://dev.to/techschoolguru/http-2-the-secret-weapon-of-grpc-32dk”