HTTP
HTTP-Statuscodes
Suche…
Einführung
Statuscodes sind in HTTP ein maschinenlesbarer Mechanismus, der das Ergebnis einer zuvor ausgegebenen Anforderung angibt. Aus RFC 7231, sek. 6 : "Das Statuscode-Element ist ein dreistelliger Ganzzahlcode, der das Ergebnis des Versuchs anzeigt, die Anforderung zu verstehen und zu erfüllen."
Durch die formale Grammatik können Codes zwischen 000
und 999
. Nur der Bereich von 100
bis 599
hat jedoch Bedeutung zugewiesen.
Bemerkungen
HTTP / 1.1 definiert eine Anzahl numerischer HTTP-Statuscodes , die in der Statuszeile (erste Zeile einer HTTP-Antwort) angezeigt werden, um zusammenzufassen, was der Client mit der Antwort tun soll.
Die erste Ziffer eines Statuscodes definiert die Antwortklasse:
-
1xx
informativ -
2xx
erfolgreich -
3xx
Request umgeleitet - weitere Aktion erforderlich, z. B. eine neue Anfrage -
4xx
Client-Fehler - Wiederholen Sie dieselbe Anfrage nicht -
5xx
Serverfehler - versuchen Sie es vielleicht noch einmal
In der Praxis ist es nicht immer einfach, den am besten geeigneten Statuscode auszuwählen.
500 Interner Serverfehler
Ein interner HTTP 500-Serverfehler ist eine allgemeine Nachricht, die besagt, dass der Server auf etwas Unerwartetes gestoßen ist. Anwendungen (oder der übergeordnete Webserver) sollten eine 500 verwenden, wenn bei der Verarbeitung der Anforderung ein Fehler aufgetreten ist - dh eine Ausnahme wird ausgelöst oder ein Zustand der Ressource verhindert, dass der Prozess abgeschlossen wird.
Beispiel Statuszeile:
HTTP/1.1 500 Internal Server Error
404 Nicht gefunden
HTTP 404 nicht gefunden bedeutet, dass der Server den Pfad nicht mit der vom Client angeforderten URI finden konnte.
HTTP/1.1 404 Not Found
Meistens wurde die angeforderte Datei gelöscht, aber manchmal kann es sich um eine fehlerhafte Konfiguration des Dokumentstamms oder fehlende Berechtigungen handeln (obwohl fehlende Berechtigungen häufiger HTTP 403 Forbidden auslösen).
Beispielsweise schreibt Microsoft IIS 404.0 (0 ist der Unterstatus) in seine Protokolldateien, wenn die angeforderte Datei gelöscht wurde. Wenn jedoch die eingehende Anforderung durch Anforderungsfilterregeln blockiert wird, schreibt sie 404.5-404.19 in Protokolldateien, nach denen die Anforderung die Anforderung blockiert. Eine detailliertere Fehlercode-Referenz finden Sie beim Microsoft Support .
Zugriff auf geschützte Dateien verweigern
Verwenden Sie 403 Verboten, wenn ein Client eine Ressource angefordert hat, auf die aufgrund vorhandener Zugriffskontrollen nicht zugegriffen werden kann. Wenn Ihre App beispielsweise über eine /admin
Route verfügt, auf die nur Benutzer mit Administratorrechten zugreifen dürfen, können Sie 403 verwenden, wenn ein normaler Benutzer die Seite anfordert.
GET /admin HTTP/1.1
Host: example.com
HTTP/1.1 403 Forbidden
Erfolgreiche Anfrage
Senden Sie eine HTTP-Antwort mit Statuscode 200
, um eine erfolgreiche Anforderung anzuzeigen. Die HTTP-Antwortstatuszeile lautet dann:
HTTP/1.1 200 OK
Der Statustext OK
ist nur informativ. Der Antworttext (Message Payload) sollte eine Darstellung der angeforderten Ressource enthalten. Wenn keine Repräsentation vorhanden ist, sollte kein Inhalt verwendet werden.
Antworten auf eine bedingte Anforderung für zwischengespeicherten Inhalt
Senden Sie als Antwort auf eine Clientanforderung, die die Kopfzeilen If-Modified-Since
und If-None-Match
enthält, einen Antwortstatus " 304 Not Modified", der vom Server gesendet wurde.
Wenn beispielsweise eine Clientanforderung für eine Webseite den Header If-Modified-Since: Fri, 22 Jul 2016 14:34:40 GMT
und die Seite seitdem nicht geändert wurde, antworten Sie mit der Statuszeile HTTP/1.1 304 Not Modified
Top 10 HTTP-Statuscode
2xx Erfolg
- 200 OK - Standardantwort für erfolgreiche HTTP-Anforderungen.
- 201 Created - Die Anforderung wurde erfüllt, wodurch eine neue Ressource erstellt wurde.
- 204 No Content - Der Server hat die Anforderung erfolgreich verarbeitet und gibt keinen Inhalt zurück.
3xx Umleitung
- 304 Not Modified ( Nicht geändert) - Gibt an, dass die Ressource seit der durch die Anforderungsheader
If-Modified-Since
oderIf-None-Match
angegebenen Version nicht geändert wurde.
4xx Clientfehler
- 400 Falsche Anforderung - Der Server kann oder kann die Anfrage aufgrund eines offensichtlichen Clientfehlers (z. B. fehlerhafte Anforderungssyntax, zu große Größe, ungültiges Anforderungsnachrichten-Framing oder falsches Anforderungsrouting) nicht verarbeiten.
- 401 Unauthorized - Ähnlich wie 403 Forbidden , jedoch besonders für die Verwendung, wenn eine Authentifizierung erforderlich ist und fehlgeschlagen ist oder noch nicht bereitgestellt wurde. Die Antwort muss ein
WWW-Authenticate
Headerfeld enthalten, das eine für die angeforderte Ressource geltende Herausforderung enthält. - 403 Verboten - Die Anfrage war eine gültige Anfrage, der Server weigert sich jedoch, darauf zu antworten. Der Benutzer ist möglicherweise angemeldet, verfügt jedoch nicht über die erforderlichen Berechtigungen für die Ressource.
- 404 nicht gefunden - Die angeforderte Ressource wurde nicht gefunden, ist jedoch möglicherweise in der Zukunft verfügbar. Nachträgliche Anfragen des Auftraggebers sind zulässig.
- 409 Konflikt - Zeigt an, dass die Anforderung aufgrund eines Konflikts in der Anforderung nicht verarbeitet werden konnte, beispielsweise aufgrund eines Bearbeitungskonflikts zwischen mehreren gleichzeitigen Aktualisierungen.
5xx Serverfehler
- 500 Internal Server Error ( Interner Serverfehler) - Eine generische Fehlermeldung, die angezeigt wird, wenn eine unerwartete Bedingung aufgetreten ist und keine speziellere Nachricht geeignet ist.