gRPC & High Performance APIs · Урок

HTTP/2 и Protocol Buffers: основа gRPC

Изучите две технологии, благодаря которым gRPC работает быстро: транспорт HTTP/2 и двоичную сериализацию Protocol Buffers.

Урок 4 из 413 шагов

«HTTP/2 и Protocol Buffers: основа gRPC» — бесплатный урок gRPC & High Performance APIs на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения gRPC & High Performance APIs, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс gRPC & High Performance APIs содержит 4 уроков всего.

What Powers gRPC

Скорость gRPC обусловлена двумя компонентами: HTTP/2 для передачи данных и Protocol Buffers для сериализации. Вместе они объясняют, почему gRPC превосходит JSON поверх HTTP/1.1.

HTTP/1.1 Limits

HTTP/1.1 отправляет по одному запросу за раз на каждое соединение; конвейеризация (pipelining) ненадежна, а блокировка начала очереди (head-of-line blocking) вынуждает использовать множество соединений. Это приводит к задержкам и накладным расходам для «болтливых» API.

HTTP/2 Multiplexing

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

Binary Framing & Header Compression

HTTP/2 передает данные в бинарном виде и сжимает заголовки с помощью HPACK. Меньший объем данных при передаче и более эффективный парсинг означают меньшую задержку по сравнению с текстовым протоколом HTTP/1.1.

What Are Protocol Buffers?

Protocol Buffers — это компактный бинарный формат, основанный на схемах. Вы один раз описываете сообщения в файле .proto, а инструментарий генерирует код на многих языках программирования.

message User {
  int32 id = 1;
  string name = 2;
  bool active = 3;
}

Field Numbers Matter

В передаваемых данных каждое поле protobuf содержит номер тега, а не свое имя — именно это позволяет сохранять размер полезной нагрузки минимальным. Никогда не используйте повторно и не меняйте теги, иначе вы нарушите совместимость.

Why Protobuf Is Small & Fast

Protobuf остается компактным и быстрым за счет удаления имен полей из передаваемых данных, использования кодировки varint для целых чисел, а также исключения пробелов и кавычек, характерных для JSON.

Schema-First Contracts

Файл .proto — это надежный контракт, общий для клиента и сервера. Обе стороны генерируют на его основе типобезопасный код, что устраняет целый класс ошибок, связанных со слаботипизированным форматом JSON.

Putting It Together in gRPC

gRPC-вызов легко соотносится с архитектурой: метод представляет собой поток HTTP/2, сообщения запроса и ответа — это байты protobuf, а потоковая передача использует несколько кадров в рамках этого потока.

service UserService {
  rpc GetUser (UserRequest) returns (User);
}

Trade-offs

Компромиссы: бинарные полезные нагрузки не читаются человеком, браузерам требуется grpc-web прокси, а также необходимы инструменты генерации кода. Для внутренних высоконагруженных сервисов это обычно оправдано.

Why It Beats JSON/REST

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

Quick Check

Проверьте свое понимание основ gRPC.

Recap

Две основы gRPC: HTTP/2 обеспечивает мультиплексирование потоков и бинарное фреймирование, а Protocol Buffers предоставляют компактный формат, основанный на схемах. Вместе: быстрее и безопаснее с точки зрения типов.

Можно начать бесплатно

Изучай gRPC & High Performance APIs с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
12
Уроки
48

Часто задаваемые вопросы

Урок «HTTP/2 и Protocol Buffers: основа gRPC» бесплатный?

Да — полный текст урока «HTTP/2 и Protocol Buffers: основа gRPC» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс gRPC & High Performance APIs, подпишись на CoddyKit PRO. Курс gRPC & High Performance APIs содержит 4 уроков всего.

Чему я научусь в уроке «HTTP/2 и Protocol Buffers: основа gRPC»?

Изучите две технологии, благодаря которым gRPC работает быстро: транспорт HTTP/2 и двоичную сериализацию Protocol Buffers. Ты практикуешь gRPC & High Performance APIs с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать gRPC & High Performance APIs?

Предыдущий опыт не требуется. gRPC & High Performance APIs на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «HTTP/2 и Protocol Buffers: основа gRPC»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке gRPC & High Performance APIs?

Да. Каждый урок gRPC & High Performance APIs включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Зачем нужны высокопроизводительные API
  2. Что такое gRPC
  3. Обзор RPC и REST
  4. HTTP/2 и Protocol Buffers: основа gRPC
← Назад к gRPC & High Performance APIs