Ответ
HTTP — это протокол передачи данных, используемый для веб-коммуникаций. gRPC — это фреймворк для удалённого вызова процедур (RPC), который может работать поверх HTTP/2. Protobuf (Protocol Buffers) — это бинарный формат сериализации данных, используемый gRPC по умолчанию для эффективной передачи сообщений.
Пример:
// Определение Protobuf-схемы (message.proto)
message Request {
string query = 1;
}
message Response {
string result = 1;
}
service SearchService {
rpc Search(Request) returns (Response);
}
В gRPC клиент и сервер обмениваются бинарными Protobuf-сообщениями через HTTP/2, что даёт преимущества в скорости и размере данных по сравнению с JSON-over-HTTP.