Inhalt

    Serverantwort 204 No Content

    HTTP Statuscode 204 (No Content)

    Der HTTP-Statuscode 204 (No Content) ist ein wichtiger Bestandteil der Webentwicklung. Er ermöglicht es Servern, den Clients mitzuteilen, dass eine Anfrage erfolgreich verarbeitet wurde, jedoch keine Daten im Antwortkörper gesendet werden. In diesem Artikel werden wir die korrekte Verwendung dieses Statuscodes untersuchen, praktische Beispiele anführen und mögliche Fehlerquellen sowie deren Behebung in verschiedenen Programmiersprachen besprechen.

    204 - No Content

    Charakteristik des Statuscodes 204

    • Definition des Status 204: Der Statuscode 204 signalisiert, dass die Anfrage erfolgreich war, aber keine Inhalte zurückgegeben werden.
    • Wann man den Statuscode 204 verwenden sollte: Dieser Statuscode wird häufig in Situationen verwendet, in denen eine Aktion ausgeführt wurde (z.B. Löschen oder Aktualisieren eines Datensatzes), aber keine zusätzlichen Informationen benötigt werden.
    • Unterschied zu anderen Statuscodes:
      • Status 200: Signalisiert, dass die Anfrage erfolgreich war und der Server Inhalte zurücksendet.
      • Status 204: Signalisiert, dass die Anfrage erfolgreich war, jedoch keine Inhalte zurückgegeben werden.

    Praktische Beispiele für die Verwendung des Statuscodes 204

    1. Beispiel 1: Erfolgreiche Ausführung einer Anfrage ohne zurückgegebene Daten

      Szenario: Löschen eines Ressourcenobjekts.

      fetch('/api/resource/123', {
          method: 'DELETE'
      }).then(response => {
          if (response.status === 204) {
              console.log('Ressource erfolgreich gelöscht.');
          }
      });
    2. Beispiel 2: Aktualisierung von Daten ohne zurückgegebenen Inhalt

      Szenario: Aktualisierung des Benutzerprofils.

      import requests
      
      response = requests.put('/api/user/profile', json={'name': 'Max'})
      if response.status_code == 204:
          print('Profil erfolgreich aktualisiert.')
    3. Beispiel 3: Bestätigung der Ausführung einer Aufgabe ohne Datenübertragung

      Szenario: Bestätigung von Benutzeraktionen.

      <?php
      header("HTTP/1.1 204 No Content");
      exit(); ?>

    Fehler bei der Verwendung des Statuscodes 204 und deren Behebung

    • Allgemeine Fehler, die zu falscher Verwendung führen:
      • Versand von Daten in der Antwort.
      • Falsche Verwendung in Situationen, in denen Inhalte erforderlich sind.
    • Behebung in JavaScript:
      fetch('/api/resource/123', {
          method: 'DELETE'
      }).then(response => {
          if (response.status === 204) {
              console.log('Ressource erfolgreich gelöscht.');
          } else {
              console.error('Fehler beim Löschen der Ressource.');
          }
      });
    • Behebung in Python:
      import requests
      
      response = requests.delete('/api/resource/123')
      if response.status_code == 204:
          print('Ressource erfolgreich gelöscht.')
      else:
          print('Fehler beim Löschen der Ressource.')
    • Behebung in PHP:
      <?php
      if ($_SERVER['REQUEST_METHOD'] === 'DELETE') {
          header("HTTP/1.1 204 No Content");
          exit();
      } else {
          header("HTTP/1.1 400 Bad Request");
          echo "Ungültige Anfrage.";
      } ?>

    Tipps zur richtigen Verwendung des Statuscodes 204

    • Empfehlungen zur API-Gestaltung: Stellen Sie sicher, dass der Statuscode 204 nur in Kontexten verwendet wird, in denen keine Daten benötigt werden.
    • Wie man die Verwendung des Statuscodes 204 testet: Verwenden Sie Tools wie Postman oder Curl, um die API-Endpunkte zu testen und den Statuscode zu überprüfen.

    Die korrekte Anwendung des Statuscodes 204 kann die Effizienz und Klarheit von API-Anfragen erheblich verbessern. Durch das Verständnis der spezifischen Anwendungsfälle und das Vermeiden häufiger Fehler können Entwickler sicherstellen, dass ihre Anwendungen reibungslos funktionieren.

    Statuscode Bedeutung Verwendung
    200 OK Erfolgreiche Anfrage mit zurückgegebenen Daten
    204 No Content Erfolgreiche Anfrage ohne zurückgegebene Daten