Code d'état HTTP JSP


Les formats des requêtes HTTP et des réponses HTTP sont similaires, et les deux ont la structure suivante :

  • Commencez par la ligne d'état + CRLF (retour chariot et saut de ligne)

  • Module d'en-tête de ligne zéro ou multiple +CRLF

  • Une ligne vierge, comme CRLF

  • Corps de message facultatif tel qu'un fichier, des données de requête, un résultat de requête

Par exemple, un en-tête de réponse du serveur ressemble à ce qui suit :

HTTP/1.1 200 OK
Content-Type: text/html
Header2: ...
...
HeaderN: ...
  (Blank Line)
<!doctype ...>
<html>
<head>...</head>
<body>
...
</body>
</html>


Le La ligne d'état contient la version HTTP, un code d'état et le message court correspondant au code d'état.


Le tableau suivant répertorie les codes d'état HTTP et les messages associés qui peuvent être renvoyés par le serveur :

Code d'étatMessageDescription
100 Continuer Seule une partie de la requête est reçue par le serveur, mais tant qu'elle n'est pas rejetée par le serveur, le client continuera la requête
101 Changement de protocole Protocole de commutation de serveur
200 D'accord Demande confirmée
201 Créé Compléter sur demande, une nouvelle ressource est créée
202 Accepté La demande a été acceptée mais non traitée
203 Informations ne faisant pas autorité
204 Aucun contenu
205 Réinitialiser le contenu
206 Contenu partiel
300 Choix multiples Un tableau d'hyperliens Les utilisateurs peuvent sélectionner un hyperlien et y accéder. Un maximum de 5 hyperliens sont pris en charge
. 301 Déménagé définitivement La page demandée a été déplacée vers la nouvelle URL
302 Trouvé La page demandée a été temporairement déplacée vers une nouvelle URL
303 Voir les autres La page demandée peut être trouvée sous une autre URL
304 Non modifié
305 Utiliser un proxy
306Inutilisé Ce code de statut n'est plus utilisé, mais le code de statut est conservé
307 Redirection temporaire La page demandée a été temporairement déplacée vers une nouvelle URL
400 Mauvaise demande Le serveur ne reconnaît pas la requête
401 Non autorisé La page demandée nécessite un nom d'utilisateur et un mot de passe
402 Paiement requisCe code de statut ne peut pas encore être utilisé
403 Interdit L'accès à la page demandée est interdit
404 Introuvable Le serveur ne trouve pas la page demandée
405 Méthode non autorisée La méthode spécifiée dans la demande n'est pas autorisée
406 Pas acceptable Le serveur ne peut créer qu'une réponse inacceptable pour le client
407 Authentification proxy requise Un serveur proxy doit être authentifié avant que les requêtes puissent être servies
408 Demander un délai d'attente Le temps de requête a dépassé le temps que le serveur pouvait attendre et la connexion a été déconnectée
409 Conflit Demandes contradictoires
410 Parti La page demandée n'est plus disponible
411 Longueur requise "Content-Length" n'est pas défini, le serveur a refusé d'accepter la demande
412 Échec de la condition préalable La condition préalable demandée a été évaluée par le serveur comme fausse
413 Entité de requête trop grande Le serveur a refusé d'accepter la demande car l'entité demandée était trop grande
414 URL de requête trop longue Le serveur a refusé d'accepter la demande car l'URL était trop longue.Une grande quantité d'informations de requête apparaît souvent lors de la conversion d'une requête "POST" en requête "GET"
415 Type de média non pris en charge Le serveur a refusé d'accepter la demande car le type de média n'est pas pris en charge
417 L'attente a échoué
500 Erreur de serveur interne La requête est incomplète et le serveur a rencontré une condition inattendue
501 Non implémenté La requête est incomplète et le serveur ne fournit pas les fonctionnalités requises
502 Mauvaise passerelle La requête était incomplète et le serveur a accepté une réponse invalide du serveur en amont
503 Service indisponible La requête est incomplète et le serveur est temporairement redémarré ou arrêté
504 Délai d'expiration de la passerelle Délai d'expiration de la passerelle
505 Version HTTP non prise en charge Le serveur ne prend pas en charge la version HTTP spécifiée

Méthodes de définition des codes d'état HTTP

Le tableau suivant répertorie les méthodes utilisées pour définir les codes d'état dans la classe HttpServletResponse :

S.N.Méthode et Description
S.N.方法 & 描述
1public void setStatus ( int statusCode )


此方法可以设置任意的状态码。如果您的响应包含一个特殊的状态码和一个文档,请确保在用PrintWriter返回任何内容前调用setStatus方法
2public void sendRedirect(String url)


此方法产生302响应,同时产生一个 Location 头告诉URL 一个新的文档
3public void sendError(int code, String message)


此方法将一个状态码(通常为 404)和一个短消息,自动插入HTML文档中并发回给客户端

1

public void setStatus ( int statusCode )


Cette méthode peut définir n'importe quel code d'état. Si votre réponse contient un code d'état spécial et un document, assurez-vous d'appeler la méthode setStatus

js_http_status_codes.jpg

avant de renvoyer quoi que ce soit avec PrintWriter. 2
<🎜>public void sendRedirect(String url)<🎜>
<🎜> Cette méthode génère une réponse 302 et génère également un en-tête Location indiquant à l'URL un nouveau document <🎜><🎜><🎜><🎜> 3<🎜><🎜>public void sendError(int code, String message)<🎜>
<🎜> Cette méthode insère automatiquement un code d'état (généralement 404) et un court message dans le document HTML et le renvoie au client <🎜><🎜><🎜><🎜><🎜><🎜> Exemple de programme de code d'état HTTP <🎜><🎜>L'exemple suivant enverra un code d'erreur 407 au navigateur, puis le navigateur vous dira "Besoin d'une authentification !!!". <🎜>
<html>
<head>
<title>Setting HTTP Status Code</title>
</head>
<body>
<%
   // 设置错误代码,并说明原因
   response.sendError(407, "Need authentication!!!" );
%>
</body>
</html>
<🎜>Lorsque vous accédez à la page JSP ci-dessus, vous obtiendrez les résultats suivants : <🎜><🎜><🎜>Vous pouvez également essayer d'utiliser d'autres codes d'état pour voir si vous obtiendrez des résultats inattendus. <🎜><🎜>