HTTP 204 No Content

Successo con corpo intenzionalmente vuoto — la richiesta ha funzionato, semplicemente non c'è nulla da restituire.

Cosa significa HTTP 204

HTTP 204 No Content segnala il successo esattamente come 200, tranne per il fatto che la risposta non ha deliberatamente alcun corpo. È la risposta idiomatica per le richieste DELETE, per gli aggiornamenti PUT/PATCH in cui restituire l'oggetto sarebbe ridondante, e per gli endpoint di beacon o logging.

Poiché un 204 non deve contenere un corpo, analizzare come JSON una risposta 204 nel codice client (ad esempio chiamando response.json() dopo fetch) genera un errore — un bug molto comune. Controlla lo stato prima di analizzare la risposta.

Cause comuni delle risposte 204

  • Una richiesta DELETE ha rimosso la risorsa.
  • Una PUT o PATCH ha aggiornato una risorsa e il server ha scelto di non restituirla.
  • Un endpoint che si limita a registrare dati (beacon di analytics, controlli di salute) ha confermato la ricezione.

Buone pratiche per gli sviluppatori

  • Non includere mai un corpo di risposta con 204 — molti server e proxy interromperanno la connessione se lo fai.
  • Nel codice client, distingui in base allo stato 204 prima di chiamare .json() o .text().
  • Se i client hanno bisogno della rappresentazione aggiornata, restituisci 200 con il corpo invece di 204.

Esempio di risposta

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

FAQ

Qual è la differenza tra 204 e 200 con un corpo vuoto?

In pratica si comportano allo stesso modo, ma 204 è esplicito: l'assenza di un corpo è intenzionale e i client non dovrebbero provare ad analizzarne uno.

Perché response.json() fallisce su un 204?

Una risposta 204 non ha alcun corpo, quindi non c'è nulla da analizzare. Controlla response.status === 204 prima di analizzare la risposta.

DELETE dovrebbe sempre restituire 204?

È la scelta più comune. Restituire 200 con un corpo di conferma è valido anche se i client hanno bisogno di dettagli su cosa è stato eliminato.