HTTP 204 No Content

Succès avec un corps intentionnellement vide — la requête a fonctionné, il n'y a simplement rien à renvoyer.

Ce que signifie HTTP 204

HTTP 204 No Content signale un succès exactement comme 200, sauf que la réponse n'a délibérément aucun corps. C'est la réponse idiomatique pour les requêtes DELETE, pour les mises à jour PUT/PATCH où renvoyer l'objet serait redondant, et pour les endpoints de beacon ou de logging.

Comme un 204 ne doit contenir aucun corps, analyser en JSON une réponse 204 dans le code client (par exemple appeler response.json() après fetch) lève une exception — un bug très courant. Vérifiez le statut avant d'analyser.

Causes courantes des réponses 204

  • Une requête DELETE a supprimé la ressource.
  • Un PUT ou PATCH a mis à jour une ressource et le serveur a choisi de ne pas la renvoyer.
  • Un endpoint qui ne fait qu'enregistrer des données (beacons analytics, health checks) a confirmé la réception.

Bonnes pratiques pour les développeurs

  • N'incluez jamais de corps de réponse avec 204 — de nombreux serveurs et proxys couperont la connexion si vous le faites.
  • Dans le code client, distinguez le statut 204 avant d'appeler .json() ou .text().
  • Si les clients ont besoin de la représentation mise à jour, renvoyez 200 avec le corps au lieu de 204.

Exemple de réponse

HTTP/1.1 204 No Content
Date: Thu, 02 Jul 2026 10:00:00 GMT

FAQ

Quelle est la différence entre 204 et 200 avec un corps vide ?

En pratique ils se comportent de la même façon, mais 204 est explicite : l'absence de corps est intentionnelle et les clients ne doivent pas essayer d'en analyser un.

Pourquoi response.json() échoue-t-il sur un 204 ?

Une réponse 204 n'a aucun corps du tout, donc il n'y a rien à analyser. Vérifiez response.status === 204 avant d'analyser.

DELETE doit-il toujours renvoyer 204 ?

C'est le choix le plus courant. Renvoyer 200 avec un corps de confirmation est également valide si les clients ont besoin de détails sur ce qui a été supprimé.