HTTP Status 201 - Created

Der HTTP-Status-Code 201 Created signalisiert, dass der Request erfolgreich war und eine neue Resource erstellt wurde. Die Response sollte einen Location Header mit der URI der neuen Resource enthalten. Standard-Response für POST-Requests in REST APIs.

Typ

Response-Status-Code

Syntax

Der Status Code wird mit Location Header zurückgegeben, der auf neue Resource zeigt.

http
HTTP/1.1 201 Created
Location: /api/users/42

Direktiven

Der 201 Created Status Code wird für erfolgreiche Resource-Erstellung verwendet.

Location Header
Response muss Location Header mit absoluter oder relativer URI der neuen Resource enthalten. Client kann direkt auf diese URI zugreifen, um erstellte Resource abzurufen.
Response Body
Optional kann Response Body Repräsentation der erstellten Resource enthalten. Spart Client einen zusätzlichen GET-Request, wenn vollständige Resource-Daten benötigt werden.
Idempotenz
POST-Requests mit 201 Response sind nicht idempotent. Wiederholter Request erstellt weitere Resources. PUT kann 201 zurückgeben, wenn Resource vorher nicht existierte (idempotent).

Beispiele

Nachfolgend finden Sie praktische Anwendungsbeispiele für Status 201.

Beispiel 1 User Registration

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

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

HTTP/1.1 201 Created
Location: /api/users/42
Content-Type: application/json

{"id": 42, "username": "alice", "email": "alice@example.com", "created_at": "2025-10-01T14:30:00Z"}

Beispiel 2 Order Creation mit Minimal Response

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

{"product_id": 123, "quantity": 2, "shipping_address": "..."}

HTTP/1.1 201 Created
Location: /api/orders/789
Content-Length: 0

Beispiel 3 PUT Creates New Resource

http
PUT /api/documents/contract-2025-001 HTTP/1.1
Host: api.example.com
Content-Type: application/pdf

[PDF binary data]

HTTP/1.1 201 Created
Location: /api/documents/contract-2025-001
ETag: "a3f5c8d2"
Content-Type: application/json

{"id": "contract-2025-001", "size": 524288, "created_at": "2025-10-01T14:35:00Z"}

Resource Creation Flow

REST API Resource Creation mit 201 Created Response

Vorteile für die Systemarchitektur

  • Klare Resource-Semantik: 201 signalisiert eindeutig, dass neue Resource erstellt wurde (nicht nur modifiziert). Location Header ermöglicht direkten Zugriff ohne Suche oder Query.
  • RESTful Design: Standard-Response für POST in REST APIs, Client kann Location Header nutzen für Follow-up-Requests (GET für Details, DELETE zum Löschen)
  • Caching-Friendly: 201 Responses sind nicht cacheable, verhindert Caching von Resource-Creation-Responses. Follow-up GET auf Location URI nutzt normales HTTP-Caching.

Spezifikation

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

Weitere Spezifikationen

POST Method, Location Header, HTTP Status 200 - OK