English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La structure des messages de demande HTTP et de réponse HTTP est similaire, et ressemble à ceci :
Ligne d'état initiale + Retour chariot et retour à la ligne (retour+retour à la ligne)
Zéro ou plusieurs lignes d'en-tête+Retour chariot et retour à la ligne
Une ligne blanche, c'est-à-dire un retour chariot et un retour à la ligne.
Un corps de message optionnel, par exemple un fichier, des données de requête ou une sortie de requête.
Par exemple, l'entête de réponse du serveur peut être comme 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 (dans cet exemple, HTTP/1.1)、un code d'état (dans cet exemple, 200)et un message court correspondant au code d'état (dans cet exemple, OK).
Voici une liste des codes d'état HTTP possibles renvoyés par un serveur Web et des informations associées :
Code | Message | Description |
---|---|---|
100 | Continuer | Seulement une partie de la demande a été reçue par le serveur, mais tant que la demande n'est pas refusée, le client doit continuer cette demande. |
101 | Switching Protocols | Le serveur bascule le protocole. |
200 | OK | La demande a réussi. |
201 | Créé | La demande est complète et crée une nouvelle ressource. |
202 | Accepté | La requête a été acceptée et traitée, mais le traitement n'est pas complet. |
203 | Non-Information autoritaire | |
204 | Pas de contenu | |
205 | Contenu réinitialisé | |
206 | Contenu partiel | |
300 | Choix multiples | Liste de liens. L'utilisateur peut choisir un lien pour accéder à cet endroit. Jusqu'à cinq adresses. |
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 vers une nouvelle URL. |
303 | Voir autre | La page demandée peut être trouvée sous une autre URL différente. |
304 | Non modifié | |
305 | Utilisez un proxy | |
306 | Inutilisé | Utilisez ce code dans les versions précédentes. Il n'est plus utilisé, mais le code est conservé. |
307 | Redirection temporaire | La page demandée a été temporairement déplacée vers une nouvelle URL. |
400 | Mauvaise requête | 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 | Accès à la page demandée interdit. |
404 | Page introuvable | Le serveur ne peut pas 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 génère qu'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 requête soit livrée. |
408 | Délai de la requête expiré | La durée demandée pour la requête est supérieure à la durée que le serveur peut attendre, dépassement du délai. |
409 | Conflit | La requête n'a pas pu être achevée en raison de conflits. |
410 | Partie manquante | La page demandée n'est plus disponible. |
411 | Longueur requise | "Contenu"-"Longueur" non définie. Le serveur ne peut pas traiter la requête du client sans contenu.-Informations de longueur demandées |
412 | Échec des conditions préalables | Les conditions préalables indiquées dans la requête sont évaluées par le serveur comme fausses. |
413 | Entité de la requête trop grande | Le serveur n'accepte pas la requête car l'entité de la requête est trop grande. |
414 | Requête-URL trop longue | Le serveur n'accepte pas la requête car l'URL est trop longue. Cela se produit lorsque vous transformez une requête "post" en une requête "get" avec des informations de recherche longues. |
415 | Type de média non pris en charge | Le serveur ne peut pas accepter cette requête car le type de média n'est pas supporté. |
417 | Expectation Failed | |
500 | Internal Server Error | Requête incomplète. Le serveur a rencontré une situation imprévue. |
501 | Not Implemented | Requête incomplète. Le serveur ne supporte pas la fonction requise. |
502 | Bad Gateway | Requête incomplète. Le serveur a reçu une réponse invalide du serveur上游. |
503 | Service Unavailable | Requête incomplète. Le serveur est temporairement surchargé ou est en panne. |
504 | Gateway Timeout | Timeout Gateway |
505 | HTTP Version Not Supported | Le serveur ne supporte pas la version "HTTP protocol". |
Les méthodes suivantes peuvent être utilisées pour définir les codes d'état HTTP dans des programmes Servlet. Ces méthodes passent HttpServletResponse Objet disponible.
Numéro | Méthode & Description |
---|---|
1 | public void setStatus ( int statusCode ) Cette méthode définit un code d'état arbitraire. La méthode setStatus accepte un int (code d'état) en paramètre. Si votre réponse contient un code d'état spécial et un document, assurez-vous d'utiliser PrintWriter appeler setStatus avant de renvoyer tout contenu réel. |
2 | public void sendRedirect(String url) Cette méthode génère un 302 réponse, accompagnée d'une URL de document nouveau Location en-tête. |
3 | public void sendError(int code, String message) Cette méthode envoie un code d'état (généralement 404),ainsi qu'un message court formaté automatiquement et envoyé au client dans le document HTML. |
L'exemple suivant montre 407 Le code d'erreur est envoyé au navigateur client, qui affiche le message "Need authentication!!!".
// Importation des bibliothèques java nécessaires import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; import javax.servlet.annotation.WebServlet; @WebServlet("/showError) // Extension de la classe HttpServlet public class showError extends HttpServlet { // Méthode pour traiter les requêtes de méthode GET public void doGet(HttpServletRequest request, HttpServletResponse response) lève ServletException, IOException { // Définir le code d'erreur et la raison response.sendError(407, "Nécessite l'authentification!!!" ); } // Méthode pour traiter les requêtes de méthode POST public void doPost(HttpServletRequest request, HttpServletResponse response) lève ServletException, IOException { doGet(request, response); } }
Maintenant, appeler le Servlet ci-dessus affichera le résultat suivant :
Statut HTTP 407 - Nécessite l'authentification!!!type Rapport de statut message Nécessite l'authentification!!! description Le client doit d'abord s'authentifier avec le proxy (Nécessite l'authentification!!!). Apache Tomcat/5.5.29 |