JSP HTTP-Statuscodes
HTTP-Anfragen und HTTP-Antworten haben ähnliche Formate, beide mit der folgenden Struktur:
- Beginnen Sie mit einer Statuszeile + CRLF (Wagenrücklauf/Zeilenvorschub)
- Null oder mehr Headerzeilen + CRLF
- Eine leere Zeile, z. B. CRLF
- Ein optionaler Nachrichtenkörper wie Datei, Abfragedaten, Abfrageausgabe
Zum Beispiel sieht ein Server-Antwortheader wie folgt aus:
HTTP/1.1 200 OK Content-Type: text/html Header2: ... ... HeaderN: ... (Blank Line) <!doctype ...> <html> <head>...</head> <body> ... </body> </html>Die Statuszeile enthält die HTTP-Version, einen Statuscode und eine kurze Nachricht, die dem Statuscode entspricht.
Die folgende Tabelle enthält HTTP-Statuscodes, die vom Server zurückgegeben werden können, und ihre zugehörigen Nachrichten:
| Statuscode | Nachricht | Beschreibung |
|---|---|---|
| 100 | Continue | Nur ein Teil der Anfrage wurde vom Server empfangen, aber solange sie nicht abgelehnt wurde, sollte der Client mit der Anfrage fortfahren. |
| 101 | Protokollwechsel | Server wechselt Protokolle |
| 200 | Gut | Anfrage bestätigt |
| 201 | Erstellt | Die Anfrage war abgeschlossen, und eine neue Ressource wird erstellt |
| 202 | Akzeptiert | Die Anfrage wurde akzeptiert, aber die Verarbeitung ist noch nicht abgeschlossen |
| 203 | Nicht autoritative Informationen | |
| 204 | Kein Inhalt | |
| 205 | Inhalt zurücksetzen | |
| 206 | Partieller Inhalt | |
| 300 | Mehrere Auswahlmöglichkeiten | Eine Liste von Hyperlinks; der Benutzer kann einen Hyperlink auswählen und darauf zugreifen, wobei bis zu 5 Hyperlinks unterstützt werden |
| 301 | Dauerhaft verschoben | Die angeforderte Seite wurde zu einer neuen URL verschoben |
| 302 | Gefunden | Die angeforderte Seite wurde vorübergehend zu einer neuen URL verschoben |
| 303 | Siehe auch | Die angeforderte Seite ist unter einer anderen URL zu finden |
| 304 | Nicht geändert | |
| 305 | Proxy verwenden | |
| 306 | Nicht verwendet | Dieser Statuscode wird nicht mehr verwendet, aber der Statuscode ist reserviert |
| 307 | Temporäre Weiterleitung | Die angeforderte Seite wurde vorübergehend zu einer neuen URL verschoben |
| 400 | Ungültige Anfrage | Der Server konnte die Anfrage nicht verstehen |
| 401 | Nicht autorisiert | Die angeforderte Seite erfordert einen Benutzernamen und ein Passwort |
| 402 | Zahlung erforderlich | Dieser Statuscode kann derzeit nicht verwendet werden |
| 403 | Verboten | Der Zugriff auf die angeforderte Seite ist verboten |
| 404 | Nicht gefunden | Der Server konnte 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 der Client nicht akzeptieren kann |
| 407 | Proxy-Authentifizierung erforderlich | Ein Proxy-Server muss authentifiziert werden, bevor die Anfrage verarbeitet werden kann |
| 408 | Zeitüberschreitung der Anfrage | Die Anfragezeit überschritt die Wartezeit des Servers, und die Verbindung wurde geschlossen |
| 409 | Konflikt | Es gibt Widersprüche in der Anfrage |
| 410 | Nicht mehr vorhanden | Die angeforderte Seite ist nicht mehr verfügbar |
| 411 | Länge erforderlich | "Content-Length" ist nicht definiert, und der Server weigert sich, die Anfrage anzunehmen |
| 412 | Vorbedingung fehlgeschlagen | Die Vorbedingung der Anfrage wurde vom Server als falsch bewertet |
| 413 | Anfrage-Entität zu groß | Der Server weigerte sich, die Anfrage anzunehmen, weil die Anfrageentität zu groß ist |
| 414 | Anfrage-URL zu lang | Der Server weigerte sich, die Anfrage anzunehmen, weil die URL zu lang ist. Dies tritt häufig auf, wenn beim Umwandeln einer "POST"-Anfrage in eine "GET"-Anfrage eine große Menge an Abfrageinformationen angehängt wird |
| 415 | Nicht unterstützter Medientyp | Der Server weigerte sich, die Anfrage anzunehmen, weil der Medientyp nicht unterstützt wird |
| 417 | Erwartung fehlgeschlagen | |
| 500 | Interner Serverfehler | Die Anfrage war unvollständig; der Server ist auf eine unerwartete Bedingung gestoßen |
| 501 | Nicht implementiert | Die Anfrage war unvollständig; der Server stellt die erforderliche Funktionalität nicht bereit. |
| 502 | Ungültiges Gateway | Die Anfrage war unvollständig; der Server erhielt eine ungültige Antwort vom Upstream-Server. |
| 503 | Dienst nicht verfügbar | Die Anfrage war unvollständig; der Server wird vorübergehend neu gestartet oder heruntergefahren. |
| 504 | Gateway-Zeitüberschreitung | Gateway-Zeitüberschreitung |
| 505 | HTTP-Version wird nicht unterstützt | Der Server unterstützt die angegebene HTTP-Version nicht. |
Methoden zum Festlegen von HTTP-Statuscodes
Die folgende Tabelle listet die Methoden auf, die zum Festlegen von Statuscodes in der Klasse HttpServletResponse verwendet werden:
| S.N. | Methode & Beschreibung |
|---|---|
| 1 | public void setStatus ( int statusCode )Diese Methode kann jeden Statuscode festlegen. Wenn Ihre Antwort einen speziellen Statuscode und ein Dokument enthält, stellen Sie sicher, dass Sie die Methode setStatus aufrufen, bevor Sie Inhalte mit PrintWriter zurückgeben. |
| 2 | public void sendRedirect(String url)Diese Methode erzeugt eine 302-Antwort und erzeugt außerdem einenLocation-Header, der die URL eines neuen Dokuments angibt. |
| 3 | public void sendError(int code, String message)Diese Methode fügt automatisch einen Statuscode (normalerweise 404) und eine kurze Nachricht in ein HTML-Dokument ein und sendet es an den Client zurück. |
HTTP-Statuscode-Programmbeispiel
Das folgende Beispiel sendet einen 407-Fehlercode an den Browser, und dann wird der Browser Ihnen "Authentifizierung erforderlich!!!" mitteilen.
<html> <head> <title>Setting HTTP Status Code</title> </head> <body> <% // 设置错误代码,并说明原因 response.sendError(407, "Need authentication!!!" ); %> </body> </html>
Rufen Sie die oben genannte JSP-Seite auf und Sie erhalten das folgende Ergebnis:
Sie können auch versuchen, andere Statuscodes zu verwenden, um zu sehen, ob Sie unerwartete Ergebnisse erhalten.
Weitere Erweiterungen