201 Created

Eine neue Ressource wurde erstellt.

Wann du ihn verwendest

Nach einem POST, der etwas erstellt. Gib einen Location-Header mit, der darauf zeigt.

Gut zu wissen

Sende einen Location-Header mit der URL der neuen Ressource und gib ihre Repräsentation im Body zurück, wenn Clients sie brauchen werden, was ein anschließendes GET spart. Location darf relativ sein; Clients lösen sie gegen die Request-URL auf. HTTP-Clients folgen Location bei einer 201 nicht, weil sie keine Weiterleitung ist, also muss dein Code den Header selbst auslesen.

Mach das Anlegen wiederholungssicher: Ein Client, der in ein Timeout läuft, sendet den POST oft erneut und erzeugt ein Duplikat. Akzeptiere einen Idempotency-Key-Header, wie Stripe es tut, oder lass Clients per PUT an eine selbst erzeugte ID senden, und beantworte die Wiederholung mit der ursprünglichen Antwort. Nimm stattdessen 202, wenn die Ressource erst nach Abschluss eines Background-Jobs existiert, und 409, wenn ein eindeutiger Wert schon vergeben ist.

Erfolg (2xx)

2xx-Codes bedeuten Erfolg: Der Server hat die Anfrage erhalten, verstanden und angenommen.

So sieht es aus

HTTP/1.1 201 Created

So sendest du ihn

Node.js / Expressres.status(201).end()
Python / Flaskreturn '', 201
nginxreturn 201;

So prüfst du ihn

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

HTTP-Statuscodes öffnen