JSP Codes d'état HTTP
Les requêtes HTTP et les réponses HTTP ont des formats similaires, toutes deux avec la structure suivante :
- Commencez par une ligne d'état + CRLF (retour chariot saut de ligne)
- Zéro ou plusieurs lignes d'en-tête + CRLF
- Une ligne vide, par exemple, CRLF
- Un corps de message facultatif tel qu'un fichier, des données de requête, une sortie de requête
Par exemple, un en-tête de réponse de 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>La ligne d'état contient la version HTTP, un code d'état et un court message correspondant au code d'état.
Le tableau suivant répertorie les codes d'état HTTP qui peuvent être renvoyés par le serveur et leurs messages associés :
| Code d'état | Message | Description |
|---|---|---|
| 100 | Continue | Seule une partie de la requête a été reçue par le serveur, mais tant qu'elle n'a pas été rejetée, le client doit poursuivre la requête. |
| 101 | Switching Protocols | Le serveur change de protocole |
| 200 | OK | Requête terminée |
| 201 | Created | La requête a été complétée et une nouvelle ressource est créée |
| 202 | Accepted | La requête a été acceptée, mais le traitement n'a pas été terminé |
| 203 | Informations non faisant autorité | |
| 204 | Aucun contenu | |
| 205 | Réinitialiser le contenu | |
| 206 | Contenu partiel | |
| 300 | Choix multiples | Une liste de liens hypertextes, l'utilisateur peut sélectionner un lien hypertexte et y accéder, avec une prise en charge de 5 liens hypertextes maximum |
| 301 | Déplacé définitivement | La page demandée a été déplacée vers une nouvelle URL |
| 302 | Trouvé | La page demandée a été temporairement déplacée vers une nouvelle URL |
| 303 | Voir autre | La page demandée peut être trouvée à une autre URL |
| 304 | Non modifié | |
| 305 | Utiliser un proxy | |
| 306 | Inutilisé | Ce code d'état n'est plus utilisé, mais le code d'état est réservé |
| 307 | Redirection temporaire | La page demandée a été temporairement déplacée vers une nouvelle URL |
| 400 | Requête incorrecte | Le serveur n'a pas pu comprendre 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 d'état ne peut pas être utilisé actuellement |
| 403 | Interdit | L'accès à la page demandée est interdit |
| 404 | Non trouvé | Le serveur n'a pas pu trouver la page demandée |
| 405 | Méthode non autorisée | La méthode spécifiée dans la requête n'est pas autorisée |
| 406 | Non acceptable | Le serveur ne peut créer qu'une réponse que le client ne peut pas accepter |
| 407 | Authentification proxy requise | Un serveur proxy doit être authentifié avant que la requête puisse être traitée |
| 408 | Délai d'attente de la requête dépassé | Le temps de requête a dépassé le temps d'attente du serveur et la connexion a été fermée |
| 409 | Conflit | La requête contient des contradictions |
| 410 | Disparu | La page demandée n'est plus disponible |
| 411 | Longueur requise | "Content-Length" n'est pas défini et le serveur refuse d'accepter la requête |
| 412 | Échec de la précondition | La précondition de la requête a été évaluée comme fausse par le serveur |
| 413 | Entité de requête trop grande | Le serveur a refusé d'accepter la requête car l'entité de la requête est trop volumineuse |
| 414 | URL de requête trop longue | Le serveur a refusé d'accepter la requête car l'URL est trop longue. Cela se produit souvent lorsqu'une grande quantité d'informations de requête est ajoutée 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 requête car le type de média n'est pas pris en charge |
| 417 | Échec de l'attente | |
| 500 | Erreur interne du serveur | La requête était incomplète ; le serveur a rencontré une condition inattendue |
| 501 | Non implémenté | La requête était incomplète ; le serveur ne fournit pas la fonctionnalité requise |
| 502 | Mauvaise passerelle | La requête était incomplète ; le serveur a reçu une réponse invalide du serveur en amont |
| 503 | Service indisponible | La requête était incomplète ; le serveur redémarre ou s'arrête temporairement |
| 504 | Délai d'attente de la passerelle | Délai d'attente 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 pour définir les 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 & Description |
|---|---|
| 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 tout contenu 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êteLocationindiquant l'URL d'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 un document HTML, puis 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 indiquera "Need authentication!!!".
<html> <head> <title>Setting HTTP Status Code</title> </head> <body> <% // 设置错误代码,并说明原因 response.sendError(407, "Need authentication!!!" ); %> </body> </html>
Accédez à la page JSP ci-dessus et vous obtiendrez le résultat suivant :
Vous pouvez également essayer d'utiliser d'autres codes d'état pour voir si vous obtenez des résultats inattendus.
Autres extensions