Ответ
gRPC использует HTTP/2, который поддерживает мультиплексирование (одновременные запросы через одно соединение), бинарный протокол и серверные push-уведомления. HTTP/1.1 Keep-Alive лишь повторно использует TCP-соединение для нескольких последовательных запросов, но не устраняет проблему head-of-line blocking.
Пример gRPC (бинарный protobuf):
service Greeter {
rpc SayHello (HelloRequest) returns (HelloReply);
}
HTTP/1.1 Keep-Alive просто уменьшает накладные расходы на установку соединения:
GET /resource HTTP/1.1
Host: example.com
Connection: keep-alive
Ключевые отличия:
- gRPC: бинарный, потоковый, мультиплексированный
- HTTP/1.1 Keep-Alive: текстовый, последовательный, без мультиплексирования