HTTP POST Method

Die HTTP-Methode POST sendet Daten an den Server zur Verarbeitung. Sie wird primär für Ressourcen-Erstellung, Form-Submission und Action-Trigger verwendet. Im Gegensatz zu PUT ist POST nicht idempotent, wiederholte Requests können mehrere Ressourcen erstellen.

Typ

HTTP-Methode

Syntax

POST-Request mit Ressourcen-Collection-URI und Request-Body.

http
POST /api/users HTTP/1.1
Host: api.example.com
Content-Type: application/json

Direktiven

Die Direktiven definieren POST-Semantik und Response-Codes.

Request-Body
Enthält zu verarbeitende Daten, Format via Content-Type definiert.
201 Created
Neue Ressource erfolgreich erstellt, Location-Header gibt URI der neuen Ressource an.
200 OK
Request erfolgreich verarbeitet ohne neue Ressource, Response-Body enthält Ergebnis.
202 Accepted
Request akzeptiert aber asynchron verarbeitet, Response enthält Status-URL.
Location
Response-Header mit URI der neu erstellten Ressource bei 201 Created.
Idempotency-Key
Optional Custom-Header für idempotente POST-Requests zur Duplikat-Vermeidung.
Not Idempotent
Wiederholte POST-Requests erstellen multiple Ressourcen ohne Idempotency-Key.

Beispiele

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

Beispiel 1 User Creation

http
POST /api/users HTTP/1.1
Host: api.example.com
Content-Type: application/json
Authorization: Bearer admin_token

{
  "name": "Bob Mueller",
  "email": "bob@example.com",
  "role": "editor"
}

HTTP/1.1 201 Created
Location: /api/users/bob-mueller-id
Content-Type: application/json

{
  "id": "bob-mueller-id",
  "name": "Bob Mueller",
  "email": "bob@example.com",
  "role": "editor",
  "created_at": "2025-10-01T10:45:00Z"
}

REST-API erstellt neuen User, Location-Header verweist auf neu erstellte Ressource.

Beispiel 2 Form Submission

http
POST /contact HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded

name=Alice+Schmidt&email=alice%40example.com&message=Hello

HTTP/1.1 200 OK
Content-Type: text/html

<html><body><h1>Thank you for your message!</h1></body></html>

Klassische Form-Submission, Server verarbeitet Daten und zeigt Bestätigungsseite.

Beispiel 3 Idempotent POST with Key

http
POST /api/orders HTTP/1.1
Host: shop.example.com
Content-Type: application/json
Idempotency-Key: order-client-uuid-12345

{
  "items": [{"product_id": "P-123", "quantity": 2}],
  "total": 49.98
}

HTTP/1.1 201 Created
Location: /api/orders/ORD-789
Idempotency-Key: order-client-uuid-12345

{
  "order_id": "ORD-789",
  "status": "confirmed"
}

E-Commerce API verwendet Idempotency-Key, wiederholter Request mit gleichem Key liefert ursprüngliche Order.

POST Resource Creation Flow

POST Ressourcen-Erstellung-Ablauf

Vorteile für die Systemarchitektur

  • RESTful Resource Creation: Standardisierte Semantik für neue Ressourcen mit Location-Header
  • Flexible Actions: POST kann beliebige Server-seitige Operationen triggern, nicht nur Creation
  • Idempotency-Unterstützung: Idempotency-Key Pattern verhindert Duplikate bei Retry-Scenarios

Spezifikation

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

Weitere Spezifikationen

201 Created, Content-Type Header, PUT Method