Die Formate von HTTP-Anfragen und HTTP-Antworten sind ähnlich und haben beide die folgende Struktur:
Beginnen Sie mit der Statuszeile + CRLF (Wagenrücklauf und Zeilenvorschub).
Null- oder mehrzeiliges Header-Modul+CRLF
Eine Leerzeile, z. B. CRLF
Optionaler Nachrichtentext wie Datei, Abfragedaten, Abfrageausgabe
Ein Server-Antwortheader sieht beispielsweise so aus:
HTTP/1.1 200 OKContent-Type: text/htmlHeader2: ...HeaderN: ... (Leerzeile)<!doctype ...><html><head>...</head><body> ... </body></html>
Die Statuszeile enthält die HTTP-Version, einen Statuscode und die dem Statuscode entsprechende Kurznachricht.
In der folgenden Tabelle sind die HTTP-Statuscodes und die damit verbundenen Meldungen aufgeführt, die möglicherweise vom Server zurückgegeben werden:
| Statuscode | Information | beschreiben |
|---|---|---|
| 100 | Weitermachen | Nur ein Teil der Anfrage wird vom Server empfangen, aber solange er nicht vom Server abgelehnt wird, setzt der Client die Anfrage fort. |
| 101 | Protokolle wechseln | Server-Switch-Protokoll |
| 200 | OK | Anfrage bestätigt |
| 201 | Erstellt | Die Anfrage ist abgeschlossen und die neue Ressource wird erstellt |
| 202 | Akzeptiert | Die Anfrage wurde angenommen, aber nicht bearbeitet |
| 203 | Nicht maßgebliche Informationen | |
| 204 | Kein Inhalt | |
| 205 | Inhalt zurücksetzen | |
| 206 | Teilinhalt | |
| 300 | Mehrere Auswahlmöglichkeiten | Eine Hyperlink-Tabelle. Benutzer können einen Hyperlink auswählen und darauf zugreifen. Es werden maximal 5 Hyperlinks unterstützt. |
| 301 | Dauerhaft verschoben | Die angeforderte Seite wurde auf eine neue URL verschoben |
| 302 | Gefunden | Die angeforderte Seite wurde vorübergehend auf eine neue URL verschoben |
| 303 | Siehe Andere | Die angeforderte Seite ist unter einer anderen URL zu finden |
| 304 | Nicht geändert | |
| 305 | Verwenden Sie Proxy | |
| 306 | Unbenutzt | Dieser Statuscode wird nicht mehr verwendet, der Statuscode bleibt jedoch erhalten |
| 307 | Temporäre Weiterleitung | Die angeforderte Seite wurde vorübergehend auf eine neue URL verschoben |
| 400 | Ungültige Anforderung | Der Server erkennt die Anfrage nicht |
| 401 | Nicht autorisiert | Für die angeforderte Seite sind ein Benutzername und ein Passwort erforderlich |
| 402 | Zahlung erforderlich | Dieser Statuscode kann noch nicht verwendet werden |
| 403 | Verboten | Der Zugriff auf die angeforderte Seite ist untersagt |
| 404 | Nicht gefunden | Der Server kann die angeforderte Seite nicht finden |
| 405 | Methode nicht zulässig | Die in der Anfrage angegebene Methode ist nicht zulässig |
| 406 | Nicht akzeptabel | Der Server kann nur eine Antwort erstellen, die für den Client nicht akzeptabel ist |
| 407 | Proxy-Authentifizierung erforderlich | Ein Proxyserver muss authentifiziert werden, bevor Anforderungen bedient werden können |
| 408 | Zeitüberschreitung anfordern | Die Anforderungszeit überschritt die Zeit, die der Server warten konnte, und die Verbindung wurde getrennt. |
| 409 | Konflikt | Es liegt ein Konflikt in der Anfrage vor |
| 410 | Gegangen | Die angeforderte Seite ist nicht mehr verfügbar |
| 411 | Länge erforderlich | „Content-Length“ ist nicht definiert, der Server weigerte sich, die Anfrage anzunehmen |
| 412 | Voraussetzung fehlgeschlagen | Die angeforderte Vorbedingung wurde vom Server als falsch bewertet |
| 413 | Anforderungselement zu groß | Der Server weigerte sich, die Anfrage anzunehmen, da die angeforderte Entität zu groß war. |
| 414 | Anfrage-URL zu lang | Der Server weigerte sich, die Anfrage anzunehmen, da die URL zu lang war. Bei der Umwandlung einer „POST“-Anfrage in eine „GET“-Anfrage erscheint häufig eine große Menge an Abfrageinformationen. |
| 415 | Nicht unterstützter Medientyp | Der Server weigerte sich, die Anfrage anzunehmen, da der Medientyp nicht unterstützt wird |
| 417 | Die Erwartung ist fehlgeschlagen | |
| 500 | interner Serverfehler | Die Anfrage war unvollständig und der Server ist auf einen unerwarteten Zustand gestoßen. |
| 501 | Nicht implementiert | Die Anfrage ist unvollständig und der Server stellt nicht die erforderliche Funktionalität bereit |
| 502 | Schlechtes Gateway | Die Anfrage war unvollständig und der Server hat eine ungültige Antwort vom Upstream-Server erhalten. |
| 503 | Dienst nicht verfügbar | Die Anfrage ist unvollständig und der Server wird vorübergehend neu gestartet oder heruntergefahren. |
| 504 | Gateway-Timeout | Gateway-Timeout |
| 505 | HTTP-Version wird nicht unterstützt | Der Server unterstützt die angegebene HTTP-Version nicht |
In der folgenden Tabelle sind die Methoden aufgeführt, die zum Festlegen von Statuscodes in der HttpServletResponse-Klasse verwendet werden:
| SN | Methode und Beschreibung |
|---|---|
| 1 | public void setStatus (int statusCode) Diese Methode kann einen beliebigen Statuscode festlegen. Wenn Ihre Antwort einen speziellen Statuscode und ein Dokument enthält, rufen Sie unbedingt die setStatus-Methode auf, bevor Sie etwas mit dem PrintWriter zurückgeben |
| 2 | public void sendRedirect(String url) Diese Methode generiert eine 302-Antwort und einen Location- Header, um der URL ein neues Dokument mitzuteilen. |
| 3 | public void sendError(int code, String message) Diese Methode fügt automatisch einen Statuscode (normalerweise 404) und eine kurze Nachricht in das HTML-Dokument ein und sendet es an den Client zurück. |
Das folgende Beispiel sendet einen 407-Fehlercode an den Browser und der Browser meldet Ihnen „Authentifizierung erforderlich!!!“.
<html><head><title>HTTP-Statuscode festlegen</title></head><body><% // Fehlercode festlegen und den Grund erläutern Response.sendError(407, „Authentifizierung erforderlich!!!“ ) ; %></body></html>
Wenn Sie die obige JSP-Seite besuchen, erhalten Sie die folgenden Ergebnisse:

Sie können auch versuchen, andere Statuscodes zu verwenden, um zu sehen, ob Sie unerwartete Ergebnisse erhalten.