【ジーアールピーシーウェブ】

gRPC-Web とは?

最終更新:
💡 ブラウザとgRPCサービスをつなぐ通信の架け橋

ブラウザからgRPCサービスを利用するためのプロトコル。ブラウザの通信APIに合わせた形式を使い、Envoyなどで通常のgRPCと変換する構成がある。

📌 このページのポイント
プロキシで通信形式を変換する例 ブラウザ プロキシ サービス gRPC-Web クライアント 変換 Envoyなど gRPC HTTP/2 青の矢印:要求/緑の矢印:応答 gRPC-WebはHTTP/1.1専用ではない
ブラウザ側とバックエンド側のプロトコルを変換する構成例。公式クライアントのサーバーストリーミングはgrpcwebtextモードが条件(2026年10月確認)。
ひよこ ひよこ
普通のgRPCはブラウザから使えないの?
ペンギン先生 ペンギン先生
ブラウザの通信APIでは、通常のgRPCが必要とするHTTP/2の仕組みを直接扱えないんだ。gRPC-Webは、その制約に合わせて異なる通信形式を使うよ。
ひよこ ひよこ
どうやってgRPCサービスにつなぐの?
ペンギン先生 ペンギン先生
代表例はEnvoyなどのプロキシを間に置く構成だよ。ブラウザ側のgRPC-Webと、バックエンド側の通常のgRPCを変換するんだ。
ひよこ ひよこ
HTTP/1.1専用の仕組みなの?
ペンギン先生 ペンギン先生
専用ではないよ。gRPC-WebはHTTP/2固有のフレームに依存しない設計なんだ。単にHTTP/1.1をHTTP/2に変えるだけでなく、メッセージや終了状態の伝え方も変換するよ。
ひよこ ひよこ
Protobufをそのままバイナリで送るの?
ペンギン先生 ペンギン先生
公式クライアントにはバイナリのgrpcwebモードと、Base64でテキスト化するgrpcwebtextモードがあるよ。.protoからクライアントコードを生成できるけれど、通信量が常にJSONより小さくなるという保証はないんだ。
ひよこ ひよこ
双方向にメッセージを送り続けられる?
ペンギン先生 ペンギン先生
2026年10月確認時の公式grpc-webクライアントは、単発のRPCとgrpcwebtextでのサーバーストリーミングに対応するよ。クライアント側と双方向のストリーミングには未対応なので、必要な通信方式を先に確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「gRPC-Web」って出てきたら「ブラウザからgRPCを使うための仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「gRPC-Web」 = ウェブ向けgRPCプロトコル
💬 Webはブラウザ向けであることを表すよ。通常のgRPCと変換しやすい通信形式として設計されているんだ。

参考資料

← 用語集にもどる