Web Protocols

gRPC

A high-performance RPC framework built on HTTP/2 and Protocol Buffers, with unary and streaming calls — popular for service-to-service communication where efficiency and strict contracts matter.

What it is

gRPC uses HTTP/2 as its transport and Protocol Buffers as its binary interface language. It supports four call types: unary, server-streaming, client-streaming and bidirectional streaming — the last leveraging HTTP/2's native multiplexed streams. Contracts are defined in .proto files and code-generated for many languages.

Browsers need gRPC-Web

Because browsers cannot control HTTP/2 framing directly, calling gRPC from a browser requires the gRPC-Web variant plus a proxy (e.g. Envoy) that translates to native gRPC.

Why it matters

  • Binary Protobuf and HTTP/2 streaming make it far more efficient than JSON-over-HTTP/1.1 for internal APIs.
  • Strongly-typed .proto contracts reduce integration errors across services.

Common mistakes

  • Terminating HTTP/2 at a proxy that downgrades to HTTP/1.1, which breaks native gRPC.
  • Trying to call native gRPC directly from a browser instead of using gRPC-Web.

How WebInspect checks this

  • The API Inspector reports HTTP/2 support and content types that indicate a gRPC endpoint.