HTTP GET Method

Die HTTP-Methode GET fordert eine Repräsentation der angegebenen Ressource an. GET ist die meistverwendete HTTP-Methode und dient ausschließlich zum Abrufen von Daten. Sie sollte keine sichtbaren Seiteneffekte auf dem Server haben und ist idempotent.

Typ

HTTP Request Method

Syntax

GET-Requests enthalten die Ziel-URI und optional Query-Parameter.

http
GET /api/users/123 HTTP/1.1
GET /api/products?category=electronics&limit=10 HTTP/1.1

Direktiven

GET-Requests haben spezifische Eigenschaften und Verwendungsregeln.

safe
GET ist eine sichere Methode und darf keine Änderungen am Server-Zustand verursachen. Clients können GET beliebig oft aufrufen ohne unerwünschte Effekte.
idempotent
Mehrfaches Ausführen derselben GET-Anfrage hat denselben Effekt wie eine einzelne Anfrage. Der zurückgegebene Wert kann sich ändern, aber nicht durch GET selbst.
cacheable
GET-Responses sind standardmäßig cacheable, sofern nicht anders durch Cache-Control oder ähnliche Header angegeben.
request body
GET-Requests sollten keinen Message Body enthalten. Query-Parameter sind der bevorzugte Weg zur Parameterübergabe.

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für die GET-Methode.

Beispiel 1 Einzelne Ressource abrufen

http
GET /api/users/123 HTTP/1.1
Host: api.example.com
Accept: application/json

HTTP/1.1 200 OK
Content-Type: application/json

{"id": 123, "username": "alice", "email": "alice@example.com"}

Beispiel 2 Collection mit Pagination

http
GET /api/products?page=2&limit=20&sort=price HTTP/1.1
Host: api.example.com

HTTP/1.1 200 OK
Content-Type: application/json
Link: </api/products?page=3>; rel="next"

[{"id": 41, "name": "Laptop"}, {"id": 42, "name": "Mouse"}]

Beispiel 3 Conditional GET mit ETag

http
GET /api/users/123 HTTP/1.1
If-None-Match: "686897696a7c876b7e"

HTTP/1.1 304 Not Modified
ETag: "686897696a7c876b7e"
Cache-Control: max-age=3600

RESTful GET Request Flow

GET Request mit Caching für optimale Performance

Vorteile für die Systemarchitektur

  • Caching-Effizienz: GET-Responses können auf allen Ebenen gecacht werden (Browser, CDN, Reverse Proxy) für maximale Performance
  • Skalierbarkeit: Idempotenz ermöglicht Load-Balancing und horizontale Skalierung ohne Synchronisationsaufwand
  • REST-Konformität: Korrekte Verwendung von GET ist fundamental für RESTful API-Design und HATEOAS-Navigation

Spezifikation

RFC 9110, Section 9.3.1 – HTTP Semantics https://www.rfc-editor.org/rfc/rfc9110.html#name-get

Weitere Spezifikationen

HEAD Method, POST Method, HTTP Status 200 - OK