Продвинутый
Почему gRPC использует HTTP/2, а не HTTP/1.1?
gRPC жестко завязан на возможности HTTP/2:
1. Мультиплексирование: В HTTP/1.1 каждый запрос требует отдельного TCP-соединения (или блокирует текущее). HTTP/2 позволяет слать тысячи параллельных запросов по одному TCP-соединению.
2. Бинарный фрейминг: HTTP/2 передает данные в бинарном виде (а не текстом), что идеально сочетается с бинарным Protobuf.
3. Сжатие заголовков (HPACK): Уменьшает накладные расходы на трафик.
4. Server Push / Стриминг: HTTP/2 нативно поддерживает потоковую передачу данных, что позволяет gRPC делать Client/Server/Bidirectional Streaming.