Statuscode 204 No Content
Was bedeutet der Statuscode 204 No Content?
Der HTTP-Statuscode 204 No Content (kein Inhalt) ist in einem Webservice nützlich, wenn dieser eine Erfolgsmeldung zurücksenden soll, aber keine Nachricht oder zumindest keinen Nachrichtentext übermittelt. Dies kann beispielsweise vorkommen, wenn DELETE-Anfragen an einen Atom Web Service gesendet werden.
Sobald die im Request bezeichnete Ressource erfolgreich gelöscht wurde, gibt der Dienst eine Statusmeldung 204 No Content zurück. Somit weiß der Client, der den Request übermittelt hat, dass die Löschung erfolgreich war. In vielen Fällen ist das bereits alles, was der Client wissen muss.
Aber auch außerhalb des Web-Services-Bereichs kann der Status 204 No Content tatsächlich eine Bedeutung für einen Benutzeragenten (beispielsweise Browser) haben. Die HTTP-Spezifikation (RFC 2616) gibt folgendes über den Statuscode 204 Kein Inhalt an: Wenn der Client ein Benutzeragent ist, sollte er die aktive Dokumentansicht nicht ändern, sondern die Sicht beibehalten, die zum Senden der Anforderung geführt hat.
Diese Antwort soll in erster Linie die Eingabe von Aktionen ermöglichen, ohne eine Änderung an der aktiven Dokumentansicht des Benutzeragenten zu verursachen, obwohl eigentlich jede neue oder aktualisierte Metainformation auf das Dokument angewendet werden sollte, das sich derzeit in der aktiven Sicht des Benutzeragenten befindet.
Benutzereingaben ohne Einfluss auf die Darstellung im Browser
Das heißt, wenn ein HTML-Formular übermittelt wird, dann sollte der Browser, falls der Server einen 204 Statuscode zurückgibt, das Formular nicht aktualisieren oder den Anfragenden zu einer anderen Seite leiten. Die Dokument Ansicht ändert sich nicht und der Betrachter bleibt beim Formular. Alle eingegebenen Daten bleiben unverändert. Die meisten Browser unterstützen dies, dennoch ist der Nutzen in der Praxis oft zweifelhaft. Benutzer erhalten keinen Hinweis darauf, dass irgendetwas auf der Serverseite passiert ist.
Wenn 204 No Content beispielsweise als Antwort auf einen PUT-Request empfangen wird und die Antwort ein ETag-Header-Feld beinhaltet, dann kann daraus geschlossen werden, dass die PUT-Operation erfolgreich auf der Zielressource durchgeführt wurde und der ETag-Feldwert das Entity-Tag für die neue Darstellung dieser Zielressource enthält.
Zum Beispiel wird häufig ein 204-Statuscode bei der Dokumentbearbeitung verwendet, um UI-Elemente im Browser zu realisieren, deren Bedienung etwa einer “Speichern” Aktion innerhalb einer Office-Umgebung entspricht. Das Dokument wird danach im Browser unverändert angezeigt und kann von Anwendern weiter bearbeitet werden.
Die Antwort 204 No Content ermöglicht es einem Server anzuzeigen, dass die Aktion stattgefunden hat und erfolgreich auf die Zielressource angewendet wurde, während impliziert wird, dass der Benutzeragent nicht von seinem aktuellen angezeigten “Dokumentenansicht” (falls existent) abweichen muss.
Sie haben noch Fragen?