201 Created
Verwendung
Der Statuscode 201 Created wird zurückgegeben, wenn eine Anfrage eine oder mehrere neue Ressourcen erzeugt. Das folgt üblicherweise auf eine POST- oder PUT-Anfrage. Der Server fügt einen Location-Header hinzu, der auf die neu erstellte Ressource verweist. Fehlt der Location-Header, befindet sich die erstellte Ressource unter dem in der ursprünglichen Anfrage angegebenen Pfad.
Hinweis
Auch eine PUT-Anfrage, die eine Ressource unter einer bestimmten URI erstellt, gibt 201 Created zurück. Der Unterschied besteht darin, dass der Client die Ziel-URI bei PUT direkt angibt, während der Server die URI bei POST bestimmt.
Die Spezifikation erlaubt einen Body in einer 201-Antwort. Nach REST-Konvention gibt man die Repräsentation der erstellten Ressource zurück, einschließlich der vom Server vergebenen Felder wie id, Zeitstempel und URIs. Das erspart eine nachgelagerte GET-Anfrage zum Abrufen der neuen Ressource. Der Location-Header verweist auf die URI der neuen Ressource.
Hinweis
201 bedeutet, dass die Ressource unmittelbar erstellt wurde und unter der Location-URI verfügbar ist. 202 bedeutet, dass die Anfrage angenommen wurde, die Verarbeitung jedoch noch nicht abgeschlossen ist, was bei asynchronen Abläufen und eingereihten Jobs üblich ist.
SEO-Auswirkung
Google wartet kurz auf Inhalte aus 201-Antworten und übergibt empfangene Inhalte anschließend an die Indexierungs-Pipeline. Eine Indexierung ist nicht garantiert.
Beispiel
Der Client lädt XML-Daten auf den Server hoch und gibt /incoming/xml als Zielpfad an. Der Server bestätigt in seiner Antwort, dass die Daten angenommen und eine Datei namens article_1.xml erstellt wurde.
Anfrage
POST /incoming/xml HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 105
<?xml version="1.0"?>
<article>
<title>Test XML article</title>
<author>Anonymous</author>
</article>
Antwort
HTTP/1.1 201 Created
Location: /incoming/xml/article_1.xml
Content-Type: application/json
Content-Length: 18
{"success":"true"}
Code-Referenzen
.NET
HttpStatusCode.Created
Rust
http::StatusCode::CREATED
Rails
:created
Go
http.StatusCreated
Symfony
Response::HTTP_CREATED
Python3.5+
http.HTTPStatus.CREATED
Java
java.net.HttpURLConnection.HTTP_CREATED
Apache HttpComponents Core
org.apache.hc.core5.http.HttpStatus.SC_CREATED
Angular
@angular/common/http/HttpStatusCode.Created