Inhalt

    Serverantwort 416 Range Not Satisfiable

    HTTP-Statuscode 416 (Range Not Satisfiable)

    HTTP-Statuscode 416 zeigt an, dass der angeforderte Datenbereich nicht erfüllt werden kann. Dies geschieht, wenn ein Client versucht, einen Teil einer Ressource anzufordern, dessen angegebener Bereich über die verfügbaren Daten hinausgeht. In diesem Artikel werden die Ursachen des Statuscodes 416, praktische Beispiele und Methoden zur Fehlerbehebung in verschiedenen Programmiersprachen behandelt.

    416 - Range Not Satisfiable

    Ursachen für das Auftreten des Statuscodes 416

    1. Falsch angegebener Bereich

      Ein Client kann einen Bereich anfordern, der den Dateigröße überschreitet. Zum Beispiel, wenn ein Client einen Bereich von 500-1000 anfordert, aber die Datei nur 300 Bytes groß ist.

    2. Fehlende Daten auf dem Server

      Wenn eine Ressource gelöscht oder geändert wurde, kann der angeforderte Bereich größer sein als die verfügbaren Daten. Dies kann passieren, wenn eine Datei aktualisiert wird und der Client nicht über die Änderungen informiert ist.

    3. Fehlerhafte Header

      Wenn die Range-Header nicht korrekt konfiguriert sind, kann dies zu einem 416-Fehler führen. Beispielsweise könnte der Header einen Bereich angeben, der nicht existiert.

    Praktische Beispiele

    • Beispiel mit einer Audiodatei

      Ein Client sendet eine Anfrage, um den Bereich 100-200 eines Audiodateiformats abzurufen, das jedoch nur 150 Bytes groß ist. Die Serverantwort könnte wie folgt aussehen:

      HTTP/1.1 416 Range Not Satisfiable
    • Beispiel mit einem Bild

      Ein Client versucht, einen Teil eines Bildes anzufordern, das kürzlich verkleinert wurde. Der angegebene Bereich könnte auf die alte Größe verweisen, was zu einem 416-Fehler führt.

    • Beispiel mit einer Textdatei

      Wenn ein Client eine Textdatei anfordert und der angegebene Bereich über die Länge der Datei hinausgeht, könnte die Antwort vom Server ebenfalls 416 sein.

    Fehlerbehebung des Statuscodes 416 in verschiedenen Programmiersprachen

    Python (mit der Bibliothek requests)

    import requests
    
    url = "http://example.com/file"
    headers = {"Range": "bytes=500-1000"}
    response = requests.get(url, headers=headers)
    
    if response.status_code == 416:
        print("Fehler: Angeforderter Bereich kann nicht bereitgestellt werden.")
    

    JavaScript (mit Fetch API)

    fetch('http://example.com/file', {
        headers: { 'Range': 'bytes=500-1000' }
    }).then(response => {
        if (response.status === 416) {
            console.log("Fehler: Angeforderter Bereich kann nicht bereitgestellt werden.");
        }
    });
    

    PHP (mit cURL)

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://example.com/file");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Range: bytes=500-1000"));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    
    if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == 416) {
        echo "Fehler: Angeforderter Bereich kann nicht bereitgestellt werden.";
    }
    curl_close($ch);
    

    Der Statuscode 416 zeigt Probleme mit der Verfügbarkeit des angeforderten Datenbereichs an. Um diesen Status zu vermeiden, ist es wichtig, die Bereiche korrekt anzugeben und mögliche Fehler auf der Client-Seite zu behandeln.

    Fehlerursache Beispiel Fehlerbehebung
    Falsch angegebener Bereich Anforderung von 500-1000 bei 300 Bytes Überprüfen der Dateigröße vor der Anforderung
    Fehlende Daten Gelöschte oder verkleinerte Datei Aktualisierung der Client-Anforderungen entsprechend
    Fehlerhafte Header Unkorrekter Range-Header Korrekte Header-Konfiguration sicherstellen