204 No Content
Verwendung
Der Statuscode 204 No Content wird als Antwort auf eine POST-, PUT- oder DELETE-Operation zurückgegeben, bei der kein Nachrichten-Body erwartet wird. Manche Server geben stattdessen ein 200 mit leerem Body und einer Content-Length von 0 zurück.
Ein praktischer Anwendungsfall ist das Ergebnis einer Formularübermittlung, bei der die Nutzerin oder der Nutzer eine Schaltfläche „Speichern“ betätigt. Der Server schreibt die Änderungen fest und verlässt sich darauf, dass der Client über den Erfolg informiert.
Der Server darf in einer 204-Antwort keinen Nachrichten-Body mitsenden. Header wie Cache-Control und ETag werden weiterhin gesendet und gelten für das durch die Anfrage bezeichnete Dokument.
Der verwandte Status 205 Reset Content gibt ebenfalls keinen Body zurück, weist den Client darüber hinaus aber an, die Dokumentansicht zurückzusetzen (etwa ein Formular nach dem Absenden zu leeren). Ein bedingtes GET gibt ein 304 zurück, um zu signalisieren, dass die Ressource nicht erneut abgerufen werden muss.
Hinweis
DELETE mit 204 ist das gängigste Muster für das einfache Entfernen einer Ressource, wenn kein Antwort-Body benötigt wird. Geben Sie stattdessen 200 zurück, wenn die Antwort Bestätigungsdetails oder die Repräsentation der gelöschten Ressource enthält. PUT mit 204 ist üblich, wenn die Aktualisierung erfolgreich ist und der Client die aktualisierte Repräsentation nicht zurückgespiegelt bekommen muss. 204 bedeutet „Erfolg, nichts anzuzeigen“, während 404 „Ressource nicht gefunden“ bedeutet. Eine Abfrage auf eine leere Sammlung gibt 200 mit einem leeren Array zurück, nicht 204.
SEO-Auswirkung
Google kann eine 204-Antwort nicht verarbeiten, da kein Inhalt empfangen wird. Eine URL, die beständig 204 zurückgibt, erscheint nicht in den Suchergebnissen.
Beispiel
Der Client sendet per POST XML-Daten an den Server, die einen Job definieren. Der Server antwortet und bestätigt damit, dass die Daten angenommen wurden und der Job abgeschlossen ist. Es müssen keine Inhalte zurückgegeben werden, womit der Statuscode 204 No Content angemessen ist.
Anfrage
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>
Antwort
HTTP/1.1 204 No Content
Code-Referenzen
.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