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 tableau suivant répertorie les codes d'état HTTP et les messages associés qui peuvent être renvoyés par le serveur :
Code d'état | Message | Description |
---|---|---|
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 | |
306 | Inutilisé | 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 requis | Ce 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. | 方法 & 描述 |
---|---|
1 | public void setStatus ( int statusCode ) |
2 | public void sendRedirect(String url) |
3 | public void sendError(int code, String message) |
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
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. <🎜><🎜>