HTTP
HTTP-Antworten
Suche…
Parameter
Statuscode | Grund-Phrase - Beschreibung |
---|---|
100 | Fortfahren - Der Client sollte den folgenden Teil einer mehrteiligen Anforderung senden. |
101 | Protokollwechsel - Der Server ändert die Version oder den Protokolltyp, der in dieser Kommunikation verwendet wird. |
200 | OK - Der Server hat die Anfrage des Clients erhalten und abgeschlossen. |
201 | Erstellt - Der Server hat die Anfrage akzeptiert und eine neue Ressource erstellt, die unter dem URI im Header Location verfügbar ist. |
202 | Accepted ( Akzeptiert) - Der Server hat die Anfrage des Clients erhalten und akzeptiert, aber die Verarbeitung wurde noch nicht gestartet oder abgeschlossen. |
203 | Nicht autorisierende Informationen - Der Server gibt Daten zurück, die möglicherweise eine Unter- oder Obermenge der auf dem ursprünglichen Server verfügbaren Informationen sind. Wird hauptsächlich von Proxies verwendet. |
204 | Kein Inhalt - wird anstelle von 200 (OK) verwendet, wenn die Antwort keinen Text enthält. |
205 | Inhalt zurücksetzen - identisch mit 204 (kein Inhalt), der Client sollte jedoch die aktive Dokumentansicht neu laden. |
206 | Partial Content - wird anstelle von 200 (OK) verwendet, wenn der Client einen Range Header anfordert. |
300 | Multiple Choices ( Mehrfachauswahl) - Die angeforderte Ressource ist für mehrere URIs verfügbar. Der Client sollte die Anforderung an einen in der Liste angegebenen URI im Nachrichtentext umleiten. |
301 | Dauerhaft verschoben - Die angeforderte Ressource ist für diesen URI nicht mehr verfügbar, und der Client sollte diese und alle zukünftigen Anforderungen an den im Location Header angegebenen URI umleiten. |
302 | Gefunden - Die Ressource befindet sich vorübergehend unter einem anderen URI. Diese Anforderung sollte bei Bestätigung durch den Benutzer an den URI im Location Header weitergeleitet werden, zukünftige Anforderungen sollten jedoch nicht geändert werden. |
303 | Siehe Sonstiges - sehr ähnlich zu 302 (gefunden), erfordert jedoch keine Benutzereingaben, um an den bereitgestellten URI umzuleiten. Der bereitgestellte URI sollte mit einer GET-Anforderung abgerufen werden. |
304 | Nicht geändert - Der Client hat einen If-Modified-Since oder einen ähnlichen Header gesendet, und die Ressource wurde seitdem nicht geändert. Der Client sollte eine zwischengespeicherte Kopie der Ressource anzeigen. |
305 | Proxy verwenden - Die angeforderte Ressource muss erneut über den im Kopfzeilenfeld Location angegebenen Proxy angefordert werden. |
307 | Temporäre Umleitung - identisch mit 302 (Found), aber HTTP 1.0-Clients unterstützen keine 307 Antworten. |
400 | Fehlerhafte Anforderung - Der Client hat eine fehlerhafte Anforderung mit Syntaxfehlern gesendet und sollte die Anforderung ändern, um diese zu korrigieren, bevor sie wiederholt wird. |
401 | Nicht autorisiert - Die angeforderte Ressource ist ohne Authentifizierung nicht verfügbar. Der Client kann die Anforderung unter Verwendung eines Authorization Headers wiederholen, um Authentifizierungsdetails anzugeben. |
402 | Zahlung erforderlich - reservierter, nicht spezifizierter Statuscode für Anwendungen, für die Benutzerabonnements erforderlich sind, um Inhalte anzuzeigen. |
403 | Verboten : Der Server versteht die Anforderung, lehnt sie jedoch aufgrund vorhandener Zugriffskontrollen ab. Die Anfrage sollte nicht wiederholt werden. |
404 | Nicht gefunden - Auf diesem Server ist keine Ressource verfügbar, die dem angeforderten URI entspricht. Kann anstelle von 403 verwendet werden, um zu vermeiden, dass Details der Zugriffskontrolle offengelegt werden. |
405 | Methode nicht zulässig - Die Ressource unterstützt die Anforderungsmethode (HTTP-Verb) nicht. Im Header " Allow akzeptable Anforderungsmethoden aufgeführt. |
406 | Nicht akzeptabel - Die Ressource weist Eigenschaften auf, die gegen die in der Anforderung gesendeten Accept-Header verstoßen. |
407 | Proxy-Authentifizierung erforderlich - Ähnlich wie 401 (Unauthorized), gibt jedoch an, dass sich der Client zuerst beim Zwischen-Proxy authentifizieren muss. |
408 | Request Timeout ( Anforderungszeitlimit) : Der Server hat eine andere Anforderung vom Client erwartet, jedoch wurde keine innerhalb eines akzeptablen Zeitraums bereitgestellt. |
409 | Konflikt - Die Anforderung konnte nicht abgeschlossen werden, da sie mit dem aktuellen Status der Ressource in Konflikt stand. |
410 | Gegangen - ähnlich wie 404 (nicht gefunden), weist jedoch auf eine dauerhafte Entfernung hin. Es ist keine Weiterleitungsadresse verfügbar. |
411 | Erforderliche Länge : Der Client hat keinen gültigen Content-Length Header angegeben und muss dies tun, bevor der Server diese Anforderung akzeptiert. |
412 | Voraussetzung fehlgeschlagen - Die Ressource ist nicht mit allen Bedingungen verfügbar, die in den vom Client gesendeten bedingten Headern angegeben sind. |
413 | Request Entity Too Large - Der Server kann einen Nachrichtentext in der vom Client gesendeten Länge derzeit nicht verarbeiten. |
414 | Request-URI zu lang - Der Server lehnt die Anfrage ab, da der Request-URI länger ist, als der Server interpretieren möchte. |
415 | Nicht unterstützter Medientyp - Der Server unterstützt den vom Client angegebenen MIME-Typ oder Medientyp nicht und kann diese Anforderung nicht bearbeiten. |
416 | Angeforderter Bereich nicht zufriedenstellend : Der Client hat einen Bytebereich angefordert, der Server kann der Spezifikation jedoch keinen Inhalt bereitstellen. |
417 | Erwartung fehlgeschlagen - Der Client hat Einschränkungen im Expect Header angegeben, die der Server nicht erfüllen kann. |
500 | Internal Server Error ( Interner Serverfehler) : Der Server hat eine unerwartete Bedingung oder einen Fehler erfüllt, der die Ausführung dieser Anforderung verhindert. |
501 | Nicht implementiert - Der Server unterstützt nicht die zum Abschließen der Anforderung erforderliche Funktionalität. Wird normalerweise verwendet, um eine Anforderungsmethode anzugeben, die für keine Ressource unterstützt wird. |
502 | Bad Gateway - Der Server ist ein Proxy und hat beim Verarbeiten dieser Anforderung eine ungültige Antwort vom Upstream-Server erhalten. |
503 | Dienst nicht verfügbar - Der Server ist stark ausgelastet oder wird gewartet und kann diese Anforderung derzeit nicht bedienen. |
504 | Gateway-Timeout - Der Server ist ein Proxy und hat nicht rechtzeitig eine Antwort vom Upstream-Server erhalten. |
505 | HTTP-Version nicht unterstützt - Der Server unterstützt nicht die Version des HTTP-Protokolls, mit der der Client eine Anforderung gestellt hat. |
Grundlegendes Antwortformat
Wenn ein HTTP-Server eine wohlgeformte HTTP-Anforderung erhält, muss er die in der Anforderung enthaltenen Informationen verarbeiten und eine Antwort an den Client zurückgeben. Eine einfache HTTP 1.1-Antwort kann wie eine der folgenden aussehen, normalerweise gefolgt von einer Reihe von Headerfeldern und möglicherweise einem Antworttext:
HTTP/1.1 200 OK \r\n
HTTP/1.1 404 Not Found \r\n
HTTP/1.1 503 Service Unavailable \r\n
Eine einfache HTTP 1.1-Antwort hat folgendes Format:
HTTP-Version Status-Code Reason-Phrase CRLF
Wie in einer Anfrage gibt die HTTP-Version
die Version des verwendeten HTTP-Protokolls an. Für HTTP 1.1 muss dies immer die Zeichenfolge HTTP/1.1
.
Status-Code
ist ein dreistelliger Code, der den Status der Anfrage des Kunden angibt. Die erste Ziffer dieses Codes ist die Statusklasse , die den Statuscode in eine von fünf Antwortkategorien [1] einordnet :
-
1xx
Informational - Der Server hat die Anfrage erhalten und die Verarbeitung wird fortgesetzt -
2xx
Erfolg - Der Server hat die Anfrage akzeptiert und verarbeitet -
3xx
Umleitung - Der Client muss weitere Schritte3xx
, um die Anforderung abzuschließen -
4xx
Client-Fehler - Der Client hat eine Anfrage gesendet, die fehlerhaft war oder nicht erfüllt werden konnte -
5xx
Server-Fehler - Die Anforderung war gültig, kann jedoch derzeit vom Server nicht erfüllt werden
Reason-Phrase
ist eine kurze Beschreibung des Statuscodes. Beispielsweise hat der Code 200
eine Grundphrase von OK
; Code 404
hat eine Phrase von Not Found
. Eine vollständige Liste der Begründungsausdrücke finden Sie in den folgenden Parametern oder in der HTTP-Spezifikation .
Die Zeile endet mit einem Wagenrücklauf-Zeilenvorschubpaar, normalerweise dargestellt durch \r\n
.
Zusätzliche Header
Wie eine HTTP-Anfrage kann eine HTTP-Antwort zusätzliche Header enthalten, um die von ihr bereitgestellte Antwort zu ändern oder zu erweitern.
Eine vollständige Liste der verfügbaren Header ist in §6.2 der Spezifikation definiert . Die am häufigsten verwendeten Header sind:
-
Server
, der wie einUser-Agent
Anforderungsheader für den Server fungiert; -
Location
, der in den Statusantworten 201 und 3xx verwendet wird, um einen URI anzugeben, an den weitergeleitet werden soll; und -
ETag
, eine eindeutige Kennung für diese Version der zurückgegebenen Ressource, damit Clients die Antwort im Cache speichern können.
Antwortheader stehen hinter der Statuszeile und werden wie bei Anforderungsheatern als solche gebildet:
Name: Value CRLF
Name
gibt den Headernamen an, z. B. ETag
oder Location
, und Value
gibt den Wert an, den der Server für diesen Header festlegt. Die Zeile endet mit einer CRLF.
Eine Antwort mit Kopfzeilen könnte folgendermaßen aussehen:
HTTP/1.1 201 Created \r\n
Server: WEBrick/1.3.1 \r\n
Location: http://example.com/files/129742 \r\n
Nachrichtenkörper
Wie bei Anforderungskörpern können HTTP-Antworten einen Nachrichtentext enthalten. Dadurch werden zusätzliche Daten bereitgestellt, die der Client verarbeitet. 200 OK-Antworten auf eine wohlgeformte GET-Anforderung sollten immer einen Nachrichtentext enthalten, der die angeforderten Daten enthält. (Wenn dies nicht der Fall ist, ist 204 No Content eine angemessenere Antwort).
Ein Nachrichtentext ist nach allen Kopfzeilen und einer doppelten CRLF enthalten. Bei Anfragen sollte die Länge in Byte mit dem Content-Length
Header angegeben werden. Eine erfolgreiche Antwort auf eine GET-Anfrage könnte daher wie folgt aussehen:
HTTP/1.1 200 OK\r\n
Server: WEBrick/1.3.1\r\n
Content-Length: 39\r\n
ETag: 4f7e2ed02b836f60716a7a3227e2b5bda7ee12c53be282a5459d7851c2b4fdfd\r\n
\r\n
Nobody expects the Spanish Inquisition.