Qu'est-ce qu'un code de statut HTTP ?
Un code d'état HTTP est une réponse à trois chiffres envoyée par un serveur web pour indiquer le résultat de la requête d'un client. Il permet tant aux navigateurs qu'aux développeurs de savoir si une requête a abouti, a échoué ou nécessite une action supplémentaire.
Chaque fois qu'un client (tel qu'un navigateur, une API ou un proxy) envoie une requête à un serveur web, celui-ci répond par un code d'état qui décrit la manière dont il a traité cette requête.
Ces codes sont regroupés en cinq catégories principales en fonction de leur premier chiffre :
- 1xx — À titre d'information : Votre demande a bien été reçue et est en cours de traitement.
- 2xx — Réussite : La demande a été reçue, comprise et acceptée avec succès.
- 3xx — Redirection : Le client doit effectuer une action supplémentaire pour finaliser la demande.
- 4xx — Erreurs côté client : La requête présente une erreur de syntaxe ou ne peut être traitée.
- 5xx — Erreurs de serveur : Le serveur n'a pas pu répondre à une requête valide.
Pour les utilisateurs de proxy, ces codes fournissent des informations essentielles permettant de déterminer si un problème de connexion provient du proxy, du site web cible ou du réseau intermédiaire.
1xx – Informations
| Code d'état | Définition | Étapes suivantes |
|---|---|---|
| 100 Continuer | La première partie d'une requête a été reçue, et le client doit poursuivre la requête. | Poursuivez l'envoi de la demande. |
| 101 Protocoles de commutation | Le serveur passe à un autre protocole, conformément à la demande du client. | Vérifiez que le client prend en charge le nouveau protocole. |
| 102 Traitement | Le serveur a reçu la requête et est en train de la traiter, mais aucune réponse n'est encore disponible. | Veuillez patienter jusqu'à ce que le serveur ait terminé le traitement. |
| 103 Premiers indices | Fournit des informations préliminaires sur la requête, généralement dans le but d'optimiser le chargement. | Suivez ces conseils pour améliorer les performances ou l'expérience utilisateur. |
2xx - Réussite
| Code d'état | Définition | Étapes suivantes |
|---|---|---|
| 200 OK | La requête a abouti et le serveur a renvoyé la ressource demandée. | Aucune action n'est requise ; la requête a abouti. |
| 201 Créé | La requête a été traitée, ce qui a entraîné la création d'une nouvelle ressource. | Aucune action n'est requise ; une nouvelle ressource a été créée. |
| 202 Accepté | La demande a été acceptée pour traitement, mais celui-ci n'est pas encore terminé. | Veuillez patienter jusqu'à la fin du traitement ; vérifiez s'il y a des mises à jour, le cas échéant. |
| 203 Informations non officielles | La requête a abouti, mais il se peut que les métadonnées renvoyées ne proviennent pas du serveur d'origine. | Vérifiez les données renvoyées afin de vous assurer qu'elles répondent aux exigences. |
| 204 Contenu manquant | La requête a abouti, mais la réponse ne contient aucun contenu. | Aucune action n'est requise ; la requête a abouti, mais il n'y a pas de contenu à afficher. |
| 205 Réinitialiser le contenu | La requête a abouti, et le client doit actualiser la page. | Rétablissez l'affichage du document ou du formulaire à son état d'origine. |
| 206 Contenu partiel | Le serveur renvoie un contenu partiel de la ressource demandée, généralement en raison d'un en-tête « range ». | Continuez à demander du contenu supplémentaire si nécessaire ; vérifiez les données reçues. |
3xx – Redirection
| Code d'état | Définition | Étapes suivantes |
|---|---|---|
| 300 questions à choix multiples | La requête peut donner lieu à plusieurs réponses possibles. L'utilisateur ou le client doit en choisir une. | Choisissez l'une des options proposées ou précisez davantage votre demande. |
| 301 Déplacé de manière permanente | La ressource demandée a été déplacée vers une nouvelle URL ; toutes les requêtes futures devront utiliser cette nouvelle URL. | Mettez à jour vos signets ou vos références afin d'utiliser la nouvelle URL. |
| 302 Trouvé | La ressource demandée se trouve temporairement à une autre URL, mais le client doit continuer à utiliser l'URL d'origine pour ses prochaines requêtes. | Suivez l'URL temporaire, mais continuez à utiliser l'URL d'origine pour vos futures requêtes. |
| 303 Voir d'autres | La réponse à la requête est accessible via une autre URL à l'aide de la méthode GET. | Envoyez une requête GET à l'URL indiquée pour récupérer la ressource. |
| 304 Non modifié | La ressource n'a pas été modifiée depuis la dernière requête, et le client peut utiliser la version mise en cache. | Utilisez la version mise en cache de la ressource. |
| 305 Utiliser un proxy | L'accès à la ressource demandée doit se faire via le proxy indiqué dans la réponse. | Renvoyez la requête en utilisant le proxy indiqué. |
| 307 Redirection temporaire | La ressource demandée se trouve temporairement à une autre URL ; le client doit suivre cette URL pour cette requête. | Veuillez suivre l'URL temporaire pour cette requête, mais utilisez l'URL d'origine pour les requêtes futures. |
| 308 Redirection permanente | La ressource demandée a été définitivement déplacée vers une nouvelle URL ; veuillez utiliser cette nouvelle URL pour toutes vos futures requêtes. | Mettez à jour toutes les références afin d'utiliser la nouvelle URL. |
4xx – Erreur côté client
| Code d'état | Définition | Étapes suivantes |
|---|---|---|
| 400 Demande incorrecte | Le serveur ne peut pas traiter la requête en raison d'une erreur côté client (par exemple, une syntaxe de requête incorrecte). | Vérifiez la syntaxe et les paramètres de la requête, puis réessayez. |
| 401 Accès non autorisé | Une authentification est requise pour accéder à la ressource demandée. | Veuillez fournir des identifiants d'authentification valides, puis réessayez. |
| 402 Paiement requis | Réservé à un usage futur ; indique généralement que l'accès à la ressource est payant. | Le cas échéant, procédez au paiement. |
| 403 Accès interdit | Le serveur comprend la requête mais refuse de l'autoriser. | Assurez-vous de disposer des autorisations nécessaires pour accéder à la ressource. |
| 404 Page introuvable | Le serveur ne parvient pas à trouver la ressource demandée. | Vérifiez si l'URL contient des erreurs ou essayez de rechercher la ressource. |
| Méthode 405 non autorisée | La méthode de requête n'est pas prise en charge pour la ressource demandée. | Vérifiez que la méthode HTTP appropriée (GET, POST, etc.) est bien utilisée. |
| 406 Non acceptable | Le serveur ne peut pas générer de réponse conforme aux en-têtes « Accept » du client. | Modifiez les en-têtes de la requête afin d'accepter un format de réponse valide. |
| 407 Authentification par proxy requise | Le client doit d'abord s'authentifier auprès du proxy. | Veuillez fournir des identifiants d'authentification proxy valides. |
| Dépassement du délai de la requête 408 | Le serveur a dépassé le délai d'attente de la requête. | Renvoyez la requête en veillant à ce qu'elle soit envoyée dans le délai autorisé par le serveur. |
| 409 Conflit | La requête n'a pas pu être traitée en raison d'un conflit avec l'état actuel de la ressource. | Résolvez le conflit avant de réessayer la requête. |
| 410 Gone | La ressource demandée n'est plus disponible et ne le sera plus. | Veuillez supprimer ou mettre à jour les références à cette ressource, car elle a été définitivement supprimée. |
| Longueur requise : 411 | Le serveur exige que l'en-tête « Content-Length » figure dans la requête. | Ajoutez l'en-tête « Content-Length » à la requête et réessayez. |
| 412 Échec de la condition préalable | Le serveur ne remplit pas l'une des conditions préalables spécifiées dans les en-têtes de la requête. | Vérifiez les conditions préalables dans les en-têtes de requête et modifiez-les si nécessaire. |
| 413 Charge utile trop volumineuse | L'entité de la requête est trop volumineuse pour que le serveur puisse ou veuille la traiter. | Réduisez la taille de la charge utile de la requête et réessayez. |
| 414 URI trop long | L'URI demandé par le client est plus long que ce que le serveur est en mesure d'interpréter. | Raccourcissez l'URI ou réduisez la complexité de la requête. |
| 415 Type de média non pris en charge | Le format multimédia des données demandées n'est pas pris en charge par le serveur. | Veuillez utiliser un format de média pris en charge dans la requête. |
| 416 Intervalle non satisfaisable | Le serveur ne peut pas prendre en charge la plage spécifiée dans l'en-tête « Range ». | Modifiez la requête de plage ou essayez d'accéder à la ressource complète. |
| 417 Échec de l'attente | Le serveur ne peut pas répondre aux exigences du champ d'en-tête de requête « Expect ». | Supprimez l'en-tête « Expect » ou modifiez sa valeur, puis réessayez. |
| 429 Nombre de requêtes trop élevé | L'utilisateur a envoyé un nombre trop élevé de requêtes depuis la même adresse IP au cours d'une période donnée (« limitation de débit »). | Veuillez patienter et réessayer un peu plus tard ; pensez à réduire la fréquence des requêtes ou à répartir celles-ci sur plusieurs adresses IP en utilisant des proxys résidentiels. |
5xx – Erreur de serveur
| Code d'état | Définition | Étapes suivantes |
|---|---|---|
| Erreur 500 du serveur interne | Le serveur a rencontré un problème imprévu qui l'a empêché de répondre à la demande. | Vérifiez les journaux du serveur pour repérer les erreurs et corrigez tout ce qui pourrait être à l'origine du problème. |
| 501 Non implémenté | Le serveur ne prend pas en charge les fonctionnalités nécessaires pour répondre à la demande. | Assurez-vous que le logiciel serveur est capable de traiter la requête ; envisagez de mettre à jour ou de remplacer le serveur. |
| 502 Bad Gateway | Le serveur, alors qu'il fonctionnait en tant que passerelle ou proxy, a reçu une réponse non valide de la part d'un serveur en amont. | Vérifiez le serveur en amont et les connexions réseau ; résolvez les éventuels problèmes. |
| 503 Service indisponible | Le serveur n'est actuellement pas en mesure de traiter la requête, souvent en raison d'une surcharge temporaire ou de travaux de maintenance. | Veuillez réessayer plus tard ; vérifiez la charge du serveur ou l'état de la maintenance. |
| Délai d'attente de la passerelle 504 | Le serveur, alors qu'il fonctionnait en tant que passerelle ou proxy, n'a pas reçu de réponse en temps voulu de la part d'un serveur en amont. | Vérifiez le serveur en amont et les connexions réseau ; assurez-vous que les paramètres de délai d'expiration sont corrects. |
| 505 Version HTTP non prise en charge | Le serveur ne prend pas en charge la version du protocole HTTP utilisée dans la requête. | Utilisez une version HTTP prise en charge ou mettez à jour le logiciel du serveur. |
| La variante 506 fait également l'objet de négociations | Le serveur présente une erreur de configuration interne, provoquant une référence circulaire. | Corrigez la configuration du serveur afin de résoudre la référence circulaire. |
| 507 Espace de stockage insuffisant | Le serveur ne parvient pas à stocker la représentation nécessaire pour traiter la requête. | Libérez de l'espace disque ou augmentez la capacité de stockage sur le serveur. |
| Boucle 508 détectée | Le serveur a détecté une boucle infinie lors du traitement d'une requête. | Recherchez et corrigez la boucle dans la configuration ou le code du serveur. |
| 510 Non étendu | Des informations complémentaires sont nécessaires pour que le serveur puisse répondre à votre demande. | Assurez-vous que la requête du client comporte les extensions nécessaires. |
| Authentification réseau 511 requise | Le client doit s'authentifier pour pouvoir accéder au réseau. | Veuillez fournir des identifiants d'authentification réseau valides. |
Cas d'usage
Surveillance des connexions par proxy
Lorsque vous utilisez proxys pour la collecte de données En matière d'automatisation Web, les codes d'état permettent de déterminer à quel niveau une requête a échoué : au niveau du proxy, de la cible ou du réseau. Par exemple, une erreur 403 indique souvent un blocage d'adresse IP, tandis qu'une erreur 407 signifie authentification par proxy a échoué.
Optimisation du web scraping
Les scrapers utilisent des codes d'état pour adapter leur comportement de manière dynamique. A 429 Nombre de requêtes trop élevé déclenche une limitation automatique du débit ou une rotation des proxys, ce qui permet de maintenir l'accès aux sites Web cibles.
Bonnes pratiques
Enregistrer et classer les codes d'état
Veillez à toujours enregistrer les codes d'état pendant grattage ou les opérations API. L'identification de tendances (telles que les pics d'erreurs 403 ou 429) permet d'affiner les paramètres du proxy et des agents utilisateurs.
Utilisation de la logique de réessai et de la rotation
Mettez en place des tentatives de réessai et Rotation des adresses IP en cas de réponses 5xx ou 429 temporaires. Cela améliore la disponibilité et réduit le risque de blocage.
Suivre l'évolution des réponses
Configurez des alertes en cas de taux d'erreurs inhabituels afin de détecter rapidement les problèmes, tels que l'expiration des identifiants de proxy ou les modifications apportées au site web cible.
Conclusion
Les codes d'état HTTP servent de pont de communication entre le client et le serveur, indiquant si une requête a abouti, a échoué ou nécessite une modification. Pour les équipes qui utilisent des proxys, la compréhension de ces codes permet d'identifier et de résoudre plus rapidement les problèmes, ce qui améliore la fiabilité de la connexion et la précision des données.
Foire aux questions
Ils décrivent la manière dont un serveur a répondu à la requête d'un client : si celle-ci a abouti, a échoué ou nécessite une action supplémentaire.
Ils permettent de déterminer si un problème provient de votre proxy, du site web cible ou de la configuration de votre client.
Les erreurs 4xx indiquent des problèmes côté client (par exemple, une requête incorrecte ou un accès non autorisé), tandis que les erreurs 5xx indiquent des défaillances côté serveur.
Dans de nombreux cas, oui. Le fait de changer d'adresse IP, d'utiliser des proxys résidentiels ou de s'authentifier correctement permet souvent de résoudre les problèmes liés aux codes d'erreur 4xx et 5xx.