Was bedeutet der HTTP Status Code?
Hier erkläre ich die wichtigsten Codes, mit der jeweiligen Lösungsstrategie!
1XX – Informationen HTTP Status Code
Alle Status-Codes die mit 1XX beginnen, senden Dir Informationen zum Server, die keinen Inhalt haben.
2XX – Erfolg
Wenn Du 2XX siehst, ist alles im grünen Bereich, die angefragte Aktion (Abrufen, Erstellen, Löschen) ist erfolgreich.
200 – erfolgreiche Antwort
Alles klar!
Beim Abrufen von Daten ist kein Fehler aufgetreten. Du erhältst die angeforderten Inhalte. Diese kann Dein Browser cachen, um eine nächste Abfrage überflüssig zu machen
201 – erfolgreiche Operation
Alles klar! Diesen Code senden oft APIs beim Hinzufügen oder Ändern von Objekten (Produkte, Anschriften usw.). Die APIs müssten Dir theoretisch nicht antworten, aber die Gegenseite (Du) will auch wissen, ob die Operation erfolgreich war.
Einige APIs stellen Dir einen Link zur erstellten3 Ressource zur Verfügung.
204 – Kein Inhalt
Du erhältst vom Server die Antwort, dass die Abfrage valid ist, aber keine Inhalte zur Abfrage vorhanden sind.
3XX – Weiterleitungen
Du hast eine Datei ausgewählt, die der Web Hoster absichtlich weiterleitet. Die Gründe können sehr unterschiedlich sein. Im Endeffekt kann die Anfrage sich mit einer 200 auflösen (Erfolg).
301 – dauerhafte Weiterleitung
Diese Webseite ist dauerhaft umgezogen.
Der Web Hoster hat sich entschieden Deine Anfrage weiterzuleiten. Grund hierfür sind eine Dateinamensänderung, Domain-Änderung oder Technologieänderung, mit der Du die alte URL nicht mehr erreichen kannst. (DAUERHAFT)
302 – temporäre Weiterleitung
Diese Webseite wird nur kurzfristig weitergeleitet.
Der Web Hoster führt eine Wartung am Produktivsystem durch, wodurch der Server für wenige Minuten bis Tage nicht erreichbar ist. Du wirst auf eine andere Webseite weitergeleitet, aber Du erhältst aber Deine gewünschten Inhalte.
4XX – Fehler beim Client
Auf Seiten des Clients / Computer / Browser ist ein Fehler aufgetreten.
Der Server verweigert oder unterdrückt die gewünschte Antwort. Suche den Fehler nicht am Server, sondern am Client.
401 – keine Zugangsberechtigung
Dein Browser fragt eine Online-Ressource ab, für die keine Credentials vorliegen. Der Server weißt Deine Anfrage ab und Du erhältst nicht die gewünschten Daten.
Lösung: Suche die Credentials für das Authentifikationsverfahren heraus (Basic Auth mit Nutzername und Passwort, Tokens, oAuth, SAML)
403 – Authentifizierung ist gescheitert
Dein Browser fragt eine Online-Ressource ab, bei Du die falsche Credentials übermittelt hast. Der Server weißt Deine Anfrage ab und Du erhältst nicht die gewünschten Daten.
Lösung: Suche Dir die korrekten Credentials (Basic Auth mit Nutzername und Passwort, Tokens, oAuth, SAML). In gewissen Fällen blockt Dich der Server, wenn Du trotz korrekter Credentials diesen zu oft abfragst. Damit will der Server eine Überlast vermeiden.
404 – Datei nicht gefunden
Die Webseite konnte der Server nicht finden: Wenn eine Webseite auf eine nicht mehr existierende Webseite verweist, tritt dieser Fehler auf.
Lösung: Verwende die Suchfunktion der Webseite oder informiere Dich in der aktuellsten Dokumentation der API über die verfügbaren Endpunkte. Ziehe andere Quellen heran, die ihre Links aktualisiert halten.
410 – Datei ist gelöscht worden
Der Server teilt Dir explizit mit, dass die angefragte Datei nicht mehr existiert.
Lösung: Verwende die Suchfunktion der Webseite oder informiere Dich in der aktuellsten Dokumentation der API über die verfügbaren Endpunkte. Ziehe andere Quellen heran, die ihre Links zu der Quelle aktualisiert halten.
405 –HTTP Status Code HTTP-Methode nicht erlaubt
Nicht jeder API-Endpunkt erlaubt jede HTTP-Methode (GET, PATCH, POST) wegen Design- und Sicherheitsgründen.
Der Server lehnt den Request aus diesem Grund ab. Der Client (das Anwendungsprogramm) nutzt die richtige Endpunkt-Adresse, aber die falsche Abfragemethode.
Lösung: Lese in der Dokumentation der API nach, welche Methode(n) (meisten nur eine) der Endpunkt unterstützt. Die häufigsten verwendeten Methoden sind GET und POST.
5XX – Fehler beim Server
Aufseiten des Servers / Senders ist ein Fehler aufgetreten.
Die Ausführung auf dem Server hat zu einem Fehler geführt. In den meisten Fällen sind Funktionen fehlerhaft oder eine Funktion existiert nicht. Suche den Fehler im Code des Servers und nicht am Client.
500 – Fehler am Server
Der Server scheitert bei der Ausführung von Code.
Lösung: Wenn Du den Server betreibst, kannst Du in den Logs oder der dargestellten Fehlermeldung entnehmen, wo der Server sich aufgehängt hat. Die Anfrage des Clients ist valid – aber der Server verarbeitet die Anfrage nicht richtig.
501 – Funktion nicht vorhanden
Du hast eine Anfrage an den Server gestellt, bei der auf der Server-Seite eine Funktion nicht implementiert ist. Der Endpunkt ist verfügbar, aber die auszuführende Funktion fehlt.
Lösung: Downgrade Deine API-Version. Oft vergessen die Entwickler einen Endpunkt fertig zu implementieren. Alternativ konsultiere die API-Doku und suche nach einer Lösungsmöglichkeit. Wenn Du Dir sicher bist, dass dies ein API-Bug ist, melde den Fehler dem API-Entwickler, sodass diese den Fehler beheben kann.
502 – Proxy / Gateway erhält ungültige Antwort und sendet einen Fehler
Du sendest eine Anfrage über einen Proxy oder Gateway.
Dein Proxy erhält von dem Server eine ungültige, falsche oder infizierte Antwort. Der Proxy leitet die Nachricht nicht weiter, sondern meldet Dir einen 502-Code zurück.
Lösung: Versuche die HTTP-Anfrage ohne einen Proxy zu senden. Antwortet der Server mit dem gewünschten? Wenn ja, überprüfe, dass der Proxy Deinen Request nicht modifiziert oder falsch konfiguriert. Wenn Du keine Antwort bekommst, probiere es später noch einmal oder kontaktiere den Proxy-Besitzer.
504 – Proxy / Gateway Antwort nicht rechtzeitig erhalten
Du sendest eine Anfrage über den Proxy an einen Server.
Nach 25 Sekunden hat der Server dem Proxy immer noch nichts zu gesendet. Der Proxy geht davon aus, dass das Paket verloren oder der Server nicht erreichbar ist.
Der Proxy antwortet mit einem 504-Code.
Lösung: Probiere die Anfrage ohne einen Proxy zu senden. Antwortet der Server mit dem gewünschten? Wenn Du keine Antwort erhältst, probiere den Anfragen-Test später noch einmal oder kontaktiere den Server-Besitzer, wenn ein Fehler vorliegt.
9XX – Herstellerfehler
Gewisse Hersteller senden neben den 100-599 HTTP Codes, 9XX Codes, die Fehler für die Hardware (herstellerspezifische) darstellen. Diese sind nicht standardisiert und richten sich primäre an den Web Hoster.
HTTP-Header mit HTTP Status Code
Allow: GET, HEAD – Welche HTTP-Methoden erlaubt der Server?
Cache-Control: Sagt dem Client, wie lange die Nachricht gültig ist / gecacht werden darf.
Connection-Encoding: gzip Damit die Übertragung möglichst schnell geht, versucht der Server die Bits zu komprimieren. Mit diesem Header gibt er die Kompressionsform an.
Content-Length: Gibt an wie lang der gesendete Inhalt ist
Expires: Sagt, wann der Client die Datei verwerfen kann