HTTPQUERY
Français

201 Created

Utilisation

Le code de statut 201 Created est renvoyé lorsqu’une requête crée une ou plusieurs nouvelles ressources. Cela fait couramment suite à une requête POST ou PUT. Le serveur inclut un en-tête Location pointant vers la ressource nouvellement créée. Lorsque l’en-tête Location est absent, la ressource créée se trouve au chemin indiqué dans la requête initiale.

Remarque

Une requête PUT qui crée une ressource à un URI précis renvoie également un 201 Created. La distinction tient à ce que le client indique directement l’URI cible avec PUT, alors que c’est le serveur qui détermine l’URI avec POST.

La spécification autorise un corps dans une réponse 201. La convention REST consiste à renvoyer la représentation de la ressource créée, y compris les champs attribués par le serveur comme l’id, les horodatages et les URI. Cela évite une requête GET supplémentaire pour récupérer la nouvelle ressource. L’en-tête Location pointe vers l’URI de la nouvelle ressource.

Remarque

201 signifie que la ressource est créée immédiatement et disponible à l’URI indiqué par Location. 202 signifie que la requête est acceptée mais que le traitement n’est pas encore terminé, ce qui est courant pour les flux asynchrones et les tâches mises en file d’attente.

Impact SEO

Google attend brièvement le contenu des réponses 201, puis transmet le contenu reçu au pipeline d’indexation. L’indexation n’est pas garantie.

Exemple

Le client téléverse des données XML vers le serveur, en indiquant /incoming/xml comme chemin de destination. Le serveur répond en confirmant que les données ont été acceptées et qu’un fichier nommé article_1.xml a été créé.

Requête

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>

Réponse

HTTP/1.1 201 Created
Location: /incoming/xml/article_1.xml
Content-Type: application/json
Content-Length: 18

{"success":"true"}

Références de code

.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