coldwa.st
Alle LeitfädenProgrammierungWebDatenWerkzeugeDatenbankenHaskellKonzepteCabal & BuildsToolchainCompilerPerformanceEditor & HLS

Programmierung · Web · API

gRPC vs. REST

Von ColdwastAktualisiert am 18. Juni 20268 Min. Lesezeit#grpc#rest#api
Ein Netzwerk-Switch mit eingesteckten Glasfaser- und Ethernet-Kabeln
Zwei Wege, wie Dienste über das Netzwerk kommunizieren – REST optimiert auf Universalität, gRPC auf Geschwindigkeit und typisierte Verträge.

Wenn Sie die Kommunikation zwischen zwei Programmen über ein Netzwerk entwerfen, ist die moderne Weggabelung REST vs. gRPC. Beide stellen Funktionen über HTTP bereit, setzen aber auf gegensätzliche Wetten: REST bevorzugt die lesbare, universelle Einfachheit; gRPC die schnelle, typisierte, binäre Effizienz. Dieser Leitfaden vergleicht sie ehrlich nach Format, Performance, Streaming, Browser-Support und Tooling – und wann man welches wählt. (Neu bei APIs? Beginnen Sie mit Was ist eine API.)

Der grundlegende Unterschied

  • REST – ein Stil der Architektur über HTTP: Ressourcen an URLs, HTTP-Verben (GET/POST/PUT/DELETE), in der Regel JSON. Lesbar, zustandslos, universell.
  • gRPC – ein Framework für entfernte Prozeduraufrufe: Sie rufen Methoden auf (wie lokale Funktionen), die in einem .proto-Vertrag definiert sind, und tauschen binäre Protocol Buffers über HTTP/2 aus.

REST ist ressourcenorientiert („hol dieses Ding ab“); gRPC ist aktionsorientiert („ruf diese Methode auf“). REST ist Text; gRPC ist binär und stark typisiert.

Performance und Transport

Die Protocol Buffers von gRPC sind kompaktes Binär, gesendet über gemultiplexte HTTP/2-Verbindungen – kleinere Nutzlasten, weniger Parsing, mehrere Aufrufe über eine Verbindung. Das JSON von REST über HTTP/1.1 ist schwerer und ausführlicher, wenngleich hochgradig optimiert und cachebar. Für den Verkehr zwischen Diensten mit hohem Volumen ist die Effizienz von gRPC real; für eine typische öffentliche API reicht REST oft aus und profitiert vom kostenlosen HTTP-Caching.

Ein Datenkabel, das an Serverhardware angeschlossen ist
Die Wahl ist ein Kompromiss – richten Sie sie danach aus, wer Ihre API aufruft und wie hoch das Verkehrsvolumen ist.

Streaming, Verträge und Codegen

gRPC unterstützt nativ bidirektionales Streaming (Client, Server und beide Richtungen), ideal für Echtzeit und hohen Durchsatz. Seine .proto-Datei ist ein strikter Vertrag, aus dem Clients und Server in vielen Sprachen generiert werden – perfekt für polyglotte Backends und um Inkompatibilitäten zur Kompilierzeit zu erkennen. REST hat keinen eingebauten Vertrag (OpenAPI/Swagger wird hinzugefügt) und das Streaming ist begrenzt (SSE/WebSockets werden hinzugefügt), aber diese Flexibilität ist auch das, was den Einstieg leicht macht.

Browser-Support und Allgegenwart

Das ist das Heimspiel von REST. Jeder Browser ruft eine REST-API über fetch auf; jede Sprache und jedes Tool versteht sie; man debuggt sie mit curl und liest das JSON. Browser sprechen kein rohes gRPC – man braucht gRPC-Web plus einen Proxy (z. B. Envoy), was bewegliche Teile hinzufügt. Wenn Ihre Web-Frontends die Hauptkonsumenten sind, ist REST (oder GraphQL) einfacher.

Empfohlen

Ein Ort, um Ihre Dienste zu hosten

Ob REST oder gRPC – Ihre API und Ihre Microservices brauchen ein zuverlässiges Zuhause mit voller Kontrolle über Laufzeit und Netzwerk. Ein VPS oder Cloud-Server eignet sich. Infomaniak – ein Schweizer, datenschutzfreundlicher Hoster – bietet passende VPS und Cloud-Server.

Infomaniak Cloud ansehen →

Affiliate-Link – er unterstützt diese kostenlosen Leitfäden.

Wie man wählt

  • Nehmen Sie REST für öffentliche APIs, Browser-Clients, einfaches CRUD und wenn Lesbarkeit, Allgegenwart und HTTP-Caching zählen.
  • Nehmen Sie gRPC für interne Aufrufe zwischen Diensten, bei denen Performance, niedrige Latenz, Streaming und ein strikt typisierter Vertrag zählen (Microservices, Echtzeit, polyglott).
  • Beides – REST/GraphQL am Rand für Clients, gRPC zwischen internen Diensten: eine weit verbreitete Architektur.

Häufige Fragen

Was ist der Unterschied zwischen gRPC und REST?

REST ist ein Architekturstil für Web-APIs auf Basis von HTTP, der in der Regel lesbares JSON über Ressourcen-URLs austauscht. gRPC ist ein leistungsstarkes RPC-Framework, das auf HTTP/2 läuft und binäre Protocol Buffers austauscht, die durch einen strikten .proto-Vertrag definiert sind. Kurz gesagt: REST ist ressourcenorientiert, textbasiert und universell; gRPC ist aktionsorientiert (methodenbasiert), binär, typisiert und schnell. Beide lösen dasselbe Problem – Programme, die über ein Netzwerk kommunizieren – mit unterschiedlichen Kompromissen.

Ist gRPC schneller als REST?

In der Regel ja für den Verkehr zwischen Diensten. gRPC sendet kompakte binäre Protocol Buffers über gemultiplexte HTTP/2-Verbindungen: kleinere Nutzlasten, weniger Overhead als JSON über HTTP/1.1 und bidirektionales Streaming. Der Vorsprung zählt vor allem bei internen Microservices mit hohem Volumen; für eine wenig ausgelastete öffentliche API reicht REST + HTTP-Caching oft völlig aus.

Kann man gRPC in einem Browser nutzen?

Nicht direkt. Browser sprechen kein rohes gRPC, weil sie die Low-Level-HTTP/2-Steuerung, die gRPC benötigt, nicht freigeben. Man nutzt gRPC-Web mit einem Proxy (z. B. Envoy) als Brücke, was Komplexität hinzufügt und einige Funktionen einschränkt (etwa Client-Streaming). REST hingegen funktioniert nativ aus jedem Browser über fetch. Wenn Ihre API hauptsächlich von Web-Frontends konsumiert wird, ist REST (oder GraphQL) einfacher.

Wann sollte man gRPC statt REST nutzen?

Wählen Sie gRPC für die interne Kommunikation zwischen Diensten, bei der Performance, niedrige Latenz, Streaming und ein strikt typisierter Vertrag zählen – Microservices, Echtzeitdaten, polyglotte Backends. Wählen Sie REST für öffentliche APIs, Browser-Clients, einfaches Ressourcen-CRUD und wenn Lesbarkeit, Allgegenwart und kostenloses HTTP-Caching im Vordergrund stehen. Viele Systeme nutzen beides: REST/GraphQL am Rand für Clients, gRPC zwischen internen Diensten.

Fazit

REST und gRPC sind keine Rivalen, sondern Werkzeuge für unterschiedliche Aufgaben. REST gewinnt bei Universalität, Browser-Support, Lesbarkeit und Caching – die richtige Voreinstellung für öffentliche und Web-APIs. gRPC gewinnt bei Geschwindigkeit, Streaming und typisierten Verträgen – die richtige Voreinstellung für leistungsstarke interne Microservices. Wählen Sie nach Ihren Aufrufern und Ihrem Verkehr, und scheuen Sie sich nicht, beides zu nutzen.