Sobes.tech
Назад к вопросам
Middle+
7

Что такое gRPC и чем он отличается от обычного HTTP?

Компании, где спрашивали
СБК ПАРУС

Ответ от нейросети

sobes.tech AI

gRPC — это современный фреймворк для удалённого вызова процедур (RPC), разработанный Google. Он использует HTTP/2 в качестве транспортного протокола и Protocol Buffers (protobuf) для сериализации данных.

Основные отличия gRPC от обычного HTTP:

  • Протокол: gRPC работает поверх HTTP/2, что обеспечивает мультиплексирование запросов, сжатие заголовков и двоичный протокол передачи, в отличие от текстового HTTP/1.1.
  • Формат данных: gRPC использует protobuf — компактный, бинарный формат, тогда как обычный HTTP чаще использует JSON или XML.
  • Типы вызовов: gRPC поддерживает не только обычные запрос-ответ, но и стриминг данных в обе стороны (клиент-сервер).
  • Производительность: благодаря бинарному протоколу и HTTP/2 gRPC обычно быстрее и эффективнее, чем REST поверх HTTP/1.1.

Пример определения сервиса в protobuf для gRPC:

syntax = "proto3";

service Greeter {
  rpc SayHello (HelloRequest) returns (HelloReply);
}

message HelloRequest {
  string name = 1;
}

message HelloReply {
  string message = 1;
}

В C# на основе этого описания генерируется код клиента и сервера для удобного вызова методов.