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:

js_http_status_codes

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

Weitere Erweiterungen