Вопрос проверяет понимание взаимодействия gRPC с HTTP/2 и преимуществ этого подхода.
gRPC использует HTTP/2 для передачи бинарных данных (Protocol Buffers). Это позволяет мультиплексировать запросы, уменьшая задержки. Сервер может даже отправлять данные без запроса (server push).
Бинарные фреймы (не текст, как в HTTP/1.1).
Мультиплексирование — несколько запросов в одном соединении.
Server Push — сервер может сам отправить данные.
Запросы и ответы сериализуются в Protocol Buffers (бинарный формат).
Каждый gRPC-вызов — это HTTP/2-поток.
Заголовки сжимаются (HPACK), уменьшая накладные расходы.
Пример работы:
Клиент отправляет бинарный запрос (POST /service/method).
Сервер отвечает так же бинарно, возможно, несколькими фреймами.
Преимущества перед REST:
Меньше задержек (один TCP-коннекшон для многих запросов).
Автоматическая генерация кода из .proto-файлов.