Code d'état HTTP du servlet
Le format des messages de requête HTTP et de réponse HTTP est similaire, et la structure est la suivante :
Ligne d'état initial + retour chariot et saut de ligne (retour chariot + saut de ligne)
Zéro ou plusieurs lignes de titre + retours chariot et sauts de ligne
Une ligne vierge, c'est-à-dire retours chariot et sauts de ligne
Un corps de message facultatif, tel qu'un fichier, des données de requête ou un résultat de requête
Par exemple, l'en-tête de réponse du serveur ressemble à ceci :
HTTP/1.1 200 OK Content-Type: text/html Header2: ... ... HeaderN: ... (Blank Line) <!doctype ...> <html> <head>...</head> <body> ... </body> </html>
Ligne d'état Comprend la version HTTP (dans ce cas, HTTP/1.1), un code d'état (dans ce cas, 200) et un court message correspondant au code d'état (dans ce cas, OK).
Ce qui suit est une liste de codes d'état HTTP et d'informations associées qui peuvent être renvoyées par le serveur Web :
Code | Message | Description |
---|---|---|
100 | Continuer | 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 | Protocoles de commutation | Protocoles de commutation de serveur. |
200 | OK | Demande réussie. |
201 | Créé | La requête est terminée et crée une nouvelle ressource. |
202 | Accepté | La demande a été acceptée pour traitement, mais le traitement était incomplet. |
203 | Informations ne faisant pas autorité | |
204 | Aucun contenu | |
205 | Réinitialiser le contenu | |
206 | Contenu partiel | |
300 | Choix multiples | Liste de liens. Les utilisateurs peuvent sélectionner un lien pour accéder à cet emplacement. Jusqu'à cinq adresses. |
301 | Déplacée 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 sous une URL différente. |
304 | Non modifié | |
305 | Utiliser un proxy | |
306 | Inutilisé | Ce code a été utilisé dans les versions précédentes. Il n'est plus utilisé, mais le code reste. |
307 | Redirection temporaire | La page demandée a été temporairement déplacée vers une nouvelle URL. |
400 | Bad Request | Le serveur ne comprend 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 | Vous ne pouvez pas encore utiliser ce code. |
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 | Non acceptable | Le serveur génère simplement une réponse qui n'est pas acceptée par le client. |
407 | Authentification proxy requise | Vous devez utiliser l'authentification du serveur proxy avant que la demande ne soit transmise. |
408 | Délai d'expiration de la demande | La demande a pris plus de temps que ce que le serveur pouvait attendre et a expiré. |
409 | Conflit | La demande n'a pas pu être traitée en raison d'un conflit. |
410 | Parti | La page demandée n'est plus disponible. |
411 | Longueur requise | "Content-Length" n'est pas défini. Le serveur ne peut pas gérer les informations de demande envoyées par le client sans Content-Length. |
412 | Échec de la précondition | La condition préalable donnée dans la requête a été évaluée par le serveur comme fausse. |
413 | Entité de requête trop grande | Le serveur n'accepte pas la requête car l'entité de requête est trop grande. |
414 | Request-url Too Long | Le serveur n'a pas accepté la demande car l'URL était trop longue. Se produit lorsque vous convertissez une requête « post » en une requête « get » avec des informations de requête longues. |
415 | Type de média non pris en charge | Le serveur n'a pas accepté la demande car le type de média n'est pas pris en charge. |
417 | Échec de l'attente | |
500 | Erreur interne du serveur | Demandes en suspens. Le serveur a rencontré une situation inattendue. |
501 | Non mis en œuvre | Demande incomplète. Le serveur ne prend pas en charge les fonctionnalités requises. |
502 | Passerelle incorrecte | Demande incomplète. Le serveur a reçu une réponse non valide du serveur en amont. |
503 | Service indisponible | Demande incomplète. Le serveur est temporairement surchargé ou en panne. |
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 "Protocole HTTP". |
Méthodes pour définir le code d'état HTTP
La méthode suivante peut être utilisée pour définir le code d'état HTTP dans le programme Servlet. Ces méthodes sont disponibles via l'objet HttpServletResponse.
Numéro de série | Méthode et description | ||||||||
---|---|---|---|---|---|---|---|---|---|
1 | public void setStatus ( int statusCode )
PrintWriter . | ||||||||
2 | public void sendRedirect(String url)Cette méthode génère une réponse 302, ainsi qu'un The Location en-tête de la nouvelle URL du document. | ||||||||
3 | public void sendError(int code, String message) Cette méthode envoie un code d'état (généralement 404), accompagné d'un court message automatiquement formaté dans le document HTML et envoyé au client. |
HTTP Status 407 - Need authentication!!!type Status report message Need authentication!!! description The client must first authenticate itself with the proxy (Need authentication!!!). Apache Tomcat/5.5.29 |
// 导入必需的 java 库 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; // 扩展 HttpServlet 类 public class showError extends HttpServlet { // 处理 GET 方法请求的方法 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // 设置错误代码和原因 response.sendError(407, "Need authentication!!!" ); } // 处理 POST 方法请求的方法 public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }<🎜>Maintenant, l'appel du servlet ci-dessus affichera les résultats suivants : <🎜>
Statut HTTP 407 - Authentification nécessaire !!!<🎜>type Rapport de statut<🎜><🎜>message Besoin d'authentification !!!<🎜><🎜>description Le client doit d'abord s'authentifier auprès du proxy (Besoin d'authentification !!!).<🎜> |