English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La structure de la requête HTTP et de la réponse HTTP est similaire, et elles ont la structure suivante :
Avec la ligne d'état+CRLF (retour chariot et saut de ligne) commence
Zéro ou plusieurs lignes d'entête+CRLF
Une ligne vide, par exemple CRLF
Corps de message optionnel tels que les fichiers, les données de requête, les résultats de la requête
Par exemple, une en-tête de réponse du serveur ressemble à ce qui suit :
HTTP/1.1 200 OK Contenu-Type: .../html En-tête2: ... ... En-têteN: ... (Ligne blanche) <!doctype ...> <html> <head>.../head> <body> ... </body> </html>
La ligne d'état contient la version HTTP, un code d'état et un message court correspondant au code d'état.
Le tableau suivant liste les codes d'état HTTP possibles qui peuvent être renvoyés par le serveur et les messages associés :
Code d'état | Message | Description |
---|---|---|
100 | Continuer | Seulement une partie de la demande est reçue par le serveur, mais tant que la demande n'est pas refusée par le serveur, le client continuera cette demande |
101 | Commutation de protocoles | Protocole de commutation de serveur |
200 | OK | La demande est confirmée |
201 | Créé | La demande est complète, une nouvelle ressource est créée |
202 | Accepté | La demande a été acceptée, mais n'a pas été traitée |
203 | Non-Information autoritaire | |
204 | Pas de contenu | |
205 | Contenu réinitialisé | |
206 | Contenu partiel | |
300 | Choix multiples | Un tableau d'hyperliens, l'utilisateur peut choisir un hyperlien pour accéder, avec un support maximal5un hyperlien |
301 | Déplacé de manière permanente | 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 sous une nouvelle URL |
303 | Voir autre | La page demandée peut être trouvée à une URL différente |
304 | Not Modified | |
305 | Use Proxy | |
306 | Unused | Ce code d'état n'est plus utilisé, mais le code d'état est conservé |
307 | Temporary Redirect | La page demandée a été temporairement déplacée sous une nouvelle URL |
400 | Bad Request | Le serveur ne peut pas identifier la requête |
401 | Unauthorized | La page demandée nécessite un nom d'utilisateur et un mot de passe |
402 | Payment Required | Ce code d'état n'est pas encore utilisable |
403 | Forbidden | L'accès à la page demandée est interdit |
404 | Not Found | Le serveur ne peut pas trouver la page demandée |
405 | Method Not Allowed | La méthode spécifiée dans la requête n'est pas autorisée |
406 | Not Acceptable | Le serveur ne peut créer qu'une réponse que le client ne peut pas accepter |
407 | Proxy Authentication Required | Il est nécessaire de认证代理 serveur avant que la requête ne soit traitée |
408 | Request Timeout | Le temps de demande dépasse le temps d'attente du serveur, la connexion est interrompue |
409 | Conflict | La requête contient des contradictions |
410 | Gone | La page demandée n'est plus disponible |
411 | Length Required | "Content-La longueur "" n'a pas été définie, le serveur refuse de recevoir la requête |
412 | Precondition Failed | La condition préalable de la requête a été évaluée comme fausse par le serveur |
413 | Request Entity Too Large | Le serveur refuse de recevoir la requête car l'entité de la requête est trop grande |
414 | Request-url Too Long | Le serveur refuse de recevoir la requête car l'URL est trop longue. Cela se produit souvent lors de la conversion d'une requête POST en requête GET avec une grande quantité d'informations de recherche |
415 | Unsupported Media Type | Le serveur refuse de recevoir la requête car le type de média n'est pas supporté |
417 | Expectation Failed | |
500 | Internal Server Error | La requête est incomplète, le serveur rencontre une situation imprévue |
501 | Not Implemented | La requête est incomplète, le serveur ne fournit pas la fonction nécessaire |
502 | Bad Gateway | La requête est incomplète, le serveur a reçu une réponse invalide de l'upstream |
503 | Service Unavailable | La requête est incomplète, le serveur redémarre ou se ferme temporairement |
504 | Gateway Timeout | Timeout de passerelle |
505 | HTTP Version Not Supported | Le serveur ne supporte pas la version HTTP spécifiée |
Le tableau suivant liste les méthodes utilisées dans HttpServletResponse pour définir le code d'état :
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 via PrintWriter |
2 | public void sendRedirect(String url) Cette méthode produit302Réponse, tout en produisant une Location L'en-tête indique à l'URL un nouveau document |
3 | public void sendError(int code, String message) Cette méthode envoie un code d'état (généralement 404) et un message court, inséré automatiquement dans le document HTML et renvoyé au client |
L'exemple suivant enverra407Le code d'erreur est fourni au navigateur, puis le navigateur vous informera "Need authentication!!!".
<html> <head> <title>Setting HTTP Status Code</title> </head> <body> <% // Définir le code d'erreur et expliquer la raison response.sendError(407, "Need authentication!!!" ); %> </body> </html>
Accédez aux pages JSP suivantes et 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.