HTTPQUERY
Français

204 No Content

Utilisation

Le code de statut 204 No Content est renvoyé en réponse à une opération POST, PUT ou DELETE pour laquelle aucun corps de message n’est attendu. Certains serveurs renvoient à la place un 200 avec un corps vide et un Content-Length de 0.

Un cas d’usage concret est le résultat de la soumission d’un formulaire lorsque l’utilisateur appuie sur un bouton « Enregistrer ». Le serveur valide les modifications et compte sur le client pour informer l’utilisateur du succès de l’opération.

Le serveur ne doit pas inclure de corps de message dans une réponse 204. Des en-têtes comme Cache-Control et ETag sont tout de même envoyés et s’appliquent au document identifié par la requête.

Le statut apparenté 205 Reset Content ne renvoie lui non plus aucun corps, mais demande en outre au client de réinitialiser la vue du document (par exemple en vidant un formulaire après son envoi). Un GET conditionnel renvoie un 304 pour signaler que la ressource n’a pas besoin d’être récupérée à nouveau.

Remarque

Un DELETE renvoyant un 204 est le modèle le plus courant pour une suppression simple de ressource lorsqu’aucun corps de réponse n’est nécessaire. Renvoyez plutôt un 200 lorsque la réponse contient des détails de confirmation ou la représentation de la ressource supprimée. Un PUT renvoyant un 204 est courant lorsque la mise à jour réussit et que le client n’a pas besoin qu’on lui renvoie la représentation mise à jour. 204 signifie « succès, rien à afficher », tandis que 404 signifie « ressource introuvable ». Une requête sur une collection vide renvoie un 200 avec un tableau vide, et non un 204.

Impact SEO

Google ne peut pas traiter une réponse 204, car aucun contenu n’est reçu. Une URL qui renvoie systématiquement un 204 n’apparaîtra pas dans les résultats de recherche.

Exemple

Le client envoie au serveur des données XML définissant une tâche. Le serveur répond en confirmant que les données ont été acceptées et que la tâche est terminée. Aucun contenu n’a besoin d’être renvoyé, ce qui rend le code de statut 204 No Content approprié.

Requête

POST /job HTTP/1.1
Host: example.com
Content-Type: application/xml
Content-Length: 68

<?xml version="1.0"?>
<job>
  <id>125</id>
  <task>G01</task>
</job>

Réponse

HTTP/1.1 204 No Content

Références de code

.NET

HttpStatusCode.NoContent

Rust

http::StatusCode::NO_CONTENT

Rails

:no_content

Go

http.StatusNoContent

Symfony

Response::HTTP_NO_CONTENT

Python3.5+

http.HTTPStatus.NO_CONTENT

Java

java.net.HttpURLConnection.HTTP_NO_CONTENT

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_NO_CONTENT

Angular

@angular/common/http/HttpStatusCode.NoContent