In der Webentwicklung spielen HTTP-Fehlercodes eine entscheidende Rolle für die Benutzerfreundlichkeit und Reputation einer Website. In diesem Artikel betrachten wir eine vollständige Liste der Server-Fehlercodes, analysieren ihre Bedeutung und lernen, wie man Server-Antwortcodes effektiv interpretiert, um Probleme zu lösen und die Leistung von Web-Apps zu optimieren.
Was ist ein HTTP-Antwortcode
Der HTTP-Antwortcode ist die Sprache von Webservern, die Browseranfragen in verständliche Anweisungen übersetzt. Er ist wie ein Dichter, der virtuelle Fragen beantwortet und ihnen Bedeutung und Richtung gibt. Antwortcodes sind nicht immer HTTP-Fehlercodes. Beispielsweise bedeutet „200 OK“ alles in Ordnung, während der HTTP-Fehler „404 Not Found“ bedeutet, dass die Seite im virtuellen Raum verloren gegangen ist. Jeder Code ist ein eindeutiger Ausdruck des Serverstatus, dessen Dekodierung es uns ermöglicht zu verstehen, was auf der anderen Seite der virtuellen Welt passiert.
1xx-Codes (Informationen)
1xx-Statuscodes im HTTP-Protokoll sind eine Art erstes Bindeglied im Dialog zwischen Server und Client. Anstatt eine vollständige Antwort auf eine Anfrage zu liefern, liefern sie Informationen über den aktuellen Status und machen den Datenaustausch so effizienter. Schauen wir sie uns genauer an:
100 Weiter. HTTP-Antwortcode, in dem der Server dem Benutzer grünes Licht gibt, sodass er sicher mit dem Senden einer großen Anfrage fortfahren kann.
101 VermittlungsprotokolleDer Server teilt dem Client mit, dass er die Spielregeln ändert, beispielsweise von HTTP auf das sicherere HTTPS umsteigt. In diesem Fall wird der Header „Upgrade“ für die Protokolländerung verwendet.
102-VerarbeitungDieser Code ist wie eine Nachricht, dass der Server die Anfrage akzeptiert hat, aber noch mit einer komplexen Operation beschäftigt ist.
103 frühe Hinweise. Hier sendet der Server vor der Hauptantwort mehrere indikative Header an den Client, die vor etwas warnen, das in naher Zukunft relevant sein könnte.
2xx-Code (Erfolgreich)
HTTP-Fehlercodes der Gruppe 2xx signalisieren eine erfolgreiche Anfrage vom Server. Sie fungieren quasi als „grünes Licht“ in der Webkommunikation und bestätigen, dass alles nach Plan läuft und erfolgreich abgeschlossen wurde.
200 OKDieser Status wird verwendet, wenn der Server eine Anfrage per GET-Methode problemlos verarbeitet und die angeforderten Daten als Antwort zurückgibt. Der Header „Content-Type“ gibt den Inhaltstyp in der Antwort an. Er informiert den Client lediglich darüber, dass die Anfrage erfolgreich war.
201 erstellt. Hier kündigt der Server die Erstellung einer neuen Ressource an.
202 akzeptiert. Der Server teilt dem Benutzer mit, dass die Anfrage akzeptiert wurde, es dauert jedoch einige Zeit, bis er antwortet.
203 Nicht verbindliche InformationenDieser Code liefert dem Kunden Daten, die zwar nicht offiziell sind, aber zum Vergleich herangezogen werden können.
204 Kein Inhalt. Der Server hat die Anfrage verarbeitet, gibt jedoch keinen weiteren Inhalt zurück.
205 Inhalt zurücksetzen. Hier wird der Client angewiesen, die aktuelle Ansicht bzw. Daten nach dem Senden zurückzusetzen.
206 Teilinhalt. Dieser Fall zeigt an, dass die Antwort nur einen Teil des angeforderten Inhalts enthält. Der Header „Content-Range“ gibt den Teilinhaltsbereich an.
207 Mehrfachstatus. Der Server hat eine Mehrfachoperationsanforderung vom Client erfolgreich abgeschlossen und die Antwort enthält Informationen zum Status der einzelnen Operationen.
226 IM Gebraucht. Dieser Code zeigt an, dass der Server die Methode „Incremental Metadata“ (IM) verwendet und als Antwort nur die geänderten Ressourcenteile an den Client übergeben hat.
3xx-Codes (Weiterleitungen)
3xx-Codes im HTTP-Protokoll dienen als Zeiger, die den Benutzer zu einer neuen Ressource führen. Sie informieren den Client darüber, dass weitere Schritte erforderlich sind, um den angeforderten Inhalt abzurufen oder zu einer anderen Ressource weitergeleitet zu werden. Sehen wir uns die Details zu jedem einzelnen Code an:
300 MehrfachauswahlDer Client erhält ein Signal, dass es mehrere mögliche Standorte für die Ressource gibt, und kann anschließend auswählen. Unter aktuellen Umständen kann der Header „Standort“ alternative Optionen für die Ressource anzeigen.
301 Dauerhaft verschoben. Der Server meldet dem Benutzer zurück, dass die Ressource dauerhaft an einen anderen Ort verschoben wurde.
302 gefundenDieser HTTP-Code ähnelt einer temporären Weiterleitung. Der Server informiert den Nutzer, dass die Ressource vorübergehend unter einer anderen URL verfügbar ist. Der Header „Location“ verweist auf die neue URL für die temporäre Weiterleitung.
303 Siehe AndereDem Client wird mitgeteilt, dass die Ressource unter einer anderen URL verfügbar ist und er eine GET-Anfrage an diese neue Adresse stellen muss.
304 nicht geändertDieser Status zeigt dem Client an, dass die Ressource seit der letzten Anfrage unverändert geblieben ist und nicht erneut heruntergeladen werden muss. Bei einer Anfrage wird der Header "If-Modified-Since" verwendet, um zu prüfen, ob die Ressource geändert wurde.
305 Proxy verwenden. Als Antwort meldet der Server, dass er den angegebenen Proxy verwenden soll, um auf die angeforderte Ressource zuzugreifen.
306 (reserviert) — Der Code wurde reserviert, wird aber tatsächlich nicht verwendet.
307 Temporäre WeiterleitungDieser Code ähnelt „302 Found“, erfordert jedoch, dass der Client bei der Anforderungsmethode bleibt, die in der ursprünglichen Anforderung verwendet wurde.
308 Permanente Weiterleitung. Gibt an, dass die Ressource dauerhaft zu einer neuen URI verschoben wurde und der Client die neue URI für alle zukünftigen Anforderungen verwenden soll.
4xx HTTP-Fehler (Client-Fehler)
HTTP 4xx-Fehlercodes weisen auf Clientfehler hin. Das bedeutet, dass das Problem auf der Benutzerseite liegt, beispielsweise beim Webbrowser oder der App.
400 Bad Request. Der Server kann die Anfrage aufgrund von Syntaxfehlern, ungültigen Daten oder anderen Fehlern auf der Clientseite nicht verarbeiten.
401 Nicht autorisiert. Der Server kann die Anfrage aufgrund von Syntaxfehlern, ungültigen Daten oder anderen Fehlern auf der Clientseite nicht verarbeiten.
402 Zahlung erforderlichDer Code ist derzeit nicht aktiv und für die zukünftige Verwendung reserviert. Er kann darauf hinweisen, dass für den zukünftigen Zugriff auf die Ressource eine Zahlung erforderlich ist.
HTTP-Fehler 403 Verboten. Der Client verfügt nicht über ausreichende Rechte, um auf die angeforderte Ressource zuzugreifen.
404 Nicht gefunden. Die angeforderte Ressource ist auf dem Server nicht vorhanden. Dies ist einer der häufigsten Benutzerfehler.
405-Methode nicht zulässigDer Server unterstützt die angegebene Anforderungsmethode für diese Ressource nicht. Der Header „Allow“ gibt die zulässigen Methoden für die Ressource an. Mit diesem Code
406 Nicht akzeptabel. Der Server kann die Daten nicht in einem Format bereitstellen, das vom Client akzeptiert werden kann.
407 Proxy-Authentifizierung erforderlich. Für den Zugriff auf die angeforderte Ressource ist eine Authentifizierung auf dem Proxyserver erforderlich.
408 Anfrage timeoutDer Server wartete auf eine Anfrage vom Client, aber es kam zu einer Zeitüberschreitung. Der Header „Retry-After“ gibt die Zeit an, nach der die Anfrage erneut versucht werden kann.
409 Konflikt. Die Anforderung kann aufgrund eines Konflikts mit dem aktuellen Ressourcenstatus nicht abgeschlossen werden.
410 verweht. Die angeforderte Ressource war zuvor vorhanden, wurde jetzt jedoch gelöscht und ihre Wiederherstellung ist nicht zu erwarten.
411-Länge erforderlichDer Server verlangt in der Anfrage die Angabe der Inhaltslänge; das Fehlen dieser Information wird als Fehler gewertet.
412-Vorbedingung fehlgeschlagenEine Vorbedingung in der Anforderung ist nicht erfüllt, was die Ausführung verhindert.
413 Nutzlast zu groß. Die Größe der angeforderten Daten überschreitet die Servergrenzen.
414 URI zu lang. Die URI-Länge in der Anfrage überschreitet akzeptable Grenzen.
415 Nicht unterstützter Medientyp. Der Server kann den in der Anforderung angegebenen Datentyp nicht verarbeiten.
416 Reichweite nicht zufriedenstellend. HTTP-Fehler, bei dem der angeforderte Bereich nicht mit den aktuellen Serverdaten übereinstimmt.
417 Erwartung fehlgeschlagen. Die erwartete Bedingung im Header „Expect“ wurde nicht erfüllt.
418 Ich bin eine TeekanneDieser Code ist als Scherz gedacht und erfordert weder für den Benutzer noch für den Server eine Aktion. Er stellt auch keinen echten Fehler dar. Er weist darauf hin, dass der Server eine Teekanne ist und keinen Kaffee kochen kann.
421 Fehlgeleitete Anfrage. Der Server verarbeitet die Anfrage aufgrund eines Fehlers in der Anfrage oder der Serverkonfiguration nicht.
422 Nicht verarbeitbare EntitätDer Server versteht die Anfrage, verarbeitet sie jedoch aufgrund von Datenfehlern nicht.
423 Gesperrt. Die Ressource ist blockiert und kann nicht verarbeitet werden.
424 Fehlgeschlagene Abhängigkeit. Die Anfrage hängt von einer anderen, nicht ausgeführten Anfrage ab.
425 Zu früh. Der Server ist aufgrund der frühen Ankunft der Anfrage nicht bereit, diese zu verarbeiten.
426 Upgrade erforderlich. Der Server erfordert die Verwendung eines fortgeschritteneren Protokolls, um die Anfrage zu verarbeiten.
428 Voraussetzung erforderlichDer Server erfordert, dass in der Anfrage bestimmte Voraussetzungen angegeben werden.
429 Zu viele Anfragen. Der Client hat in kurzer Zeit zu viele Anfragen gesendet und damit die Serverlimits überschritten.
431 Anforderungsheaderfelder zu groß. Anforderungsheader überschreiten die maximal zulässige Größe.
449 Erneut versuchen mit. Gibt an, dass die Anforderung vom aktuellen Server nicht ausgeführt werden kann, aber von einem anderen Server erfolgreich verarbeitet werden kann. Der Client sollte die Anforderung dann mit einer neuen URI wiederholen.
451 Aus rechtlichen Gründen nicht verfügbar. Die Ressource ist aus rechtlichen Gründen nicht verfügbar.
499 Client geschlossene Anfrage. Der Server hat die Anfrage erhalten, aber die Verbindung wurde vom Client geschlossen, bevor die Verarbeitung abgeschlossen war.
HTTP 5xx-Fehler (Serverfehler)
HTTP 5xx-Fehlercodes weisen auf Serverprobleme hin. Diese Codes weisen auf serverseitige Probleme hin, die dazu führen, dass der Server die Benutzeranfrage nicht ordnungsgemäß verarbeiten kann. Sehen wir sie uns genauer an:
HTTP-Fehler 500 Interner Serverfehler. Der Server stößt auf unerwartete Umstände, die die Ausführung der Anfrage verhindern. Der Header „Server“ kann den Server angeben, auf dem der Fehler aufgetreten ist.
501 Nicht implementiertDer Server unterstützt die zur Bearbeitung der Client-Anfrage erforderliche Funktionalität nicht. Der Header „Via“ kann auf den Proxyserver hinweisen, über den der Fehler aufgetreten ist.
502 Bad Gateway. Dieser Code bedeutet, dass der Server, der als Proxy fungiert, eine falsche Antwort von einem anderen Server erhalten hat.
HTTP Fehler 503 Dienst nicht verfügbar. Der Server kann vorübergehend keine Anfragen verarbeiten.
504-Gateway-Zeitlimit. Der Server, der als Proxy fungiert, hat keine rechtzeitige Antwort von einem anderen Server erhalten.
505 HTTP-Version wird nicht unterstütztDer Server unterstützt die in der Anfrage angegebene HTTP-Protokollversion nicht. Alternativ kann der Header „Upgrade“ auf unterstützte Protokolle hinweisen.
Auch die 506-Variante verhandelt. Dieser Status wird in HTTP/1.1 nicht verwendet. Wenn der Server jedoch eine interne Konfiguration erkennt, die zu Mehrdeutigkeiten bei der Inhaltsverhandlung führt, kann er diese Antwort verwenden.
507 Unzureichender Speicher. Der Server kann die Anfrage aufgrund unzureichenden Speicherplatzes auf dem Server nicht erfüllen.
508 Schleife erkannt. Der Server hat beim Verarbeiten der Anfrage eine Schleife erkannt und lehnt die Ausführung der Anfrage ab, um eine Endlosschleife zu vermeiden.
509 Bandbreitenlimit überschrittenDer Fehler tritt auf, wenn die Bandbreite des Servers aufgrund eines hohen Anforderungs- oder Datenverkehrsaufkommens überschritten wird.
510 Nicht erweitertDer Client muss zusätzliche Erweiterungen übertragen, um die Anfrage fortzusetzen.
511 Netzwerkauthentifizierung erforderlich. Der Client muss sich authentifizieren, um Zugriff auf das Netzwerk zu erhalten.
So überprüfen Sie den Seitenstatuscode
In diesem Abschnitt betrachten wir drei Hauptmethoden zur Überprüfung des Seitenstatuscodes: über die Befehlszeile, über einen Webbrowser und über unabhängige Onlinedienste. Jede dieser Methoden hat ihre eigenen Vorteile und kann in unterschiedlichen Situationen nützlich sein.
Überprüfen der Serverantwort über die Befehlszeile
Die Kommandozeile bietet eine bequeme Möglichkeit, den Seitenstatuscode zu überprüfen, ohne einen Webbrowser verwenden zu müssen. Dazu öffnen Sie die Kommandozeile und geben den folgenden Befehl ein:
curl -I http://page-address
Dieser Befehl sendet eine HEAD-Anfrage (Headers Only Request) an die angegebene URL und zeigt Informationen einschließlich des HTTP-Statuscodes an:
Das obige Beispiel zeigt einen erfolgreichen Antwortcode. Bei einer Antwort mit einem Fehlercode, z. B. „404 Not Found“, sieht das Ergebnis ähnlich aus:
Überprüfen der Serverantwort über die Browserkonsole
Die Entwicklerkonsole des Webbrowsers bietet Tools für verschiedene Vorgänge, einschließlich der Überprüfung des Seitenstatuscodes. Um den HTTP-Code in der Serverantwort anzuzeigen, öffnen Sie die Entwicklerkonsole (Strg+Umschalt+K) oder (Strg+Umschalt+J), je nach verwendetem Browser. Wählen Sie anschließend den Bereich „Netzwerk“ und laden Sie die gewünschte Seite:
Überprüfen der Serverantwort mit unabhängigen Tools
Es gibt zahlreiche unabhängige Online-Dienste, die Tools zur Überprüfung des Seitenstatuscodes anbieten. Diese Dienste ermöglichen in der Regel einen schnellen Überblick über die Verfügbarkeit und Leistung Ihrer Ressource. Sie alle funktionieren nach dem gleichen Prinzip. Als Beispiel betrachten wir die beliebteste Ressource: httpstatus.io
Zuerst müssen Sie den Dienst selbst öffnen, dann die Adresse der Seite eingeben, deren Antwort Sie herausfinden möchten, und eine Bestätigung anfordern:
Das Ergebnis wird unten auf der Seite angezeigt:
Fazit
Abschließend sei betont, dass das Verstehen und Lesen von HTTP-Fehlercodes eine Schlüsselkompetenz für alle ist, die in der Webentwicklung und Serverwartung tätig sind. Wenn wir jeden Fehler identifizieren und die Tools zu seiner Erkennung erkunden, erkennen wir, warum es so wichtig ist, diese Aspekte der Webdienste effektiv zu verwalten.