Comment faire pour résoudre les codes d'erreur courants HTTP, Digital Ocean

Nous espérons que vous trouverez ce tutoriel utile. En plus de guides comme celui-ci, nous fournissons l'infrastructure de cloud simple pour les développeurs. En savoir plus →

introduction

Lorsque vous accédez à un serveur Web ou une application, chaque requête HTTP qui est reçu par un serveur a répondu à un code d'état HTTP. codes d'état HTTP sont des codes à trois chiffres, et sont regroupées en cinq classes différentes. La classe d'un code d'état peut être rapidement identifié par son premier chiffre:

  • 1xx: Information
  • 2xx: Succès
  • 3xx: Redirection
  • 4xx: Erreur client
  • 5xx: Erreur du serveur

Ce guide met l'accent sur l'identification et le dépannage les plus fréquemment rencontrés codes d'erreur HTTP, à savoir 4xx et 5xx codes d'état, du point de vue d'un administrateur système. Il existe de nombreuses situations qui pourraient causer un serveur Web pour répondre à une demande avec un code d'erreur particulière - nous couvrirons les causes possibles et des solutions communes.

Présentation du client et du serveur Erreur

les erreurs de client ou des codes d'état HTTP de 400 à 499, sont le résultat des requêtes HTTP envoyés par un client de l'utilisateur (par exemple un navigateur Web ou un autre client HTTP). Même si ces types d'erreurs sont liées, il est le client, souvent utile de savoir quel code d'erreur un utilisateur se heurte pour déterminer si le problème potentiel peut être fixé par la configuration du serveur.

Les erreurs du serveur, ou des codes d'état HTTP de 500 à 599, sont renvoyés par un serveur Web quand il est conscient qu'une erreur a été commise ou est par ailleurs pas en mesure de traiter la demande.

Conseils généraux de dépannage

  • Lorsque vous utilisez un navigateur Web pour tester un serveur Web, actualiser le navigateur après avoir effectué les modifications du serveur
  • Consultez les journaux de serveur pour plus de détails sur la façon dont le serveur gère les demandes. Par exemple, les serveurs Web comme Apache ou Nginx produisent deux fichiers appelés access.log et error.log qui peuvent être scannés pour les informations pertinentes
  • Gardez à l'esprit que les définitions de code d'état HTTP font partie d'une norme qui est mis en œuvre par l'application qui sert des demandes. Cela signifie que le code d'état réel qui est retourné dépend de la façon dont le logiciel serveur gère une erreur particulière - ce guide devrait vous indiquer généralement dans la bonne direction

Maintenant que vous avez une compréhension de haut niveau des codes d'état HTTP, nous examinerons les erreurs fréquemment rencontrées.

400 Bad Request

Le 400 code d'état ou mauvaise erreur de demande, signifie la requête HTTP envoyée au serveur a une syntaxe non valide.

Voici quelques exemples de cas d'erreur 400 Bad Request peut se produire:

401 Unauthorized

Le code 401 d'état, ou une erreur non autorisée, signifie que l'utilisateur tente d'accéder à la ressource n'a pas été authentifié ou n'a pas été authentifié correctement. Cela signifie que l'utilisateur doit fournir des informations pour être en mesure d'afficher la ressource protégée.

Un exemple de scénario où une erreur 401 non autorisée serait renvoyé est si un utilisateur tente d'accéder à une ressource qui est protégé par l'authentification HTTP, comme dans ce tutoriel Nginx. Dans ce cas, l'utilisateur recevra un code de réponse 401 jusqu'à ce qu'ils fournissent un nom d'utilisateur et mot de passe (celui qui existe dans le fichier .htpasswd) sur le serveur Web.

403 Forbidden

Le code d'état 403, ou une erreur interdite, signifie que l'utilisateur a fait une demande valide, mais le serveur refuse de servir la demande, en raison de l'absence d'autorisation d'accéder à la ressource demandée. Si vous rencontrez une erreur 403 de façon inattendue, il y a quelques causes typiques qui sont expliquées ici.

Autorisations de fichiers

403 erreurs se produisent généralement lorsque l'utilisateur qui exécute le processus serveur Web ne dispose pas des autorisations suffisantes pour lire le fichier qui est en cours d'accès.

Pour donner un exemple de dépannage d'une erreur 403, supposons que la situation suivante:

Si l'utilisateur reçoit une erreur 403 Forbidden, assurez-vous que l'utilisateur www-data dispose des autorisations suffisantes pour lire le fichier. En règle générale, cela signifie que les autres autorisations du fichier doit être mis à lire. Il y a plusieurs façons d'assurer, mais la commande suivante fonctionnera dans ce cas:

Une autre cause potentielle de 403 erreurs, souvent intentinally, est l'utilisation d'un fichier .htaccess. Le fichier .htaccess peut être utilisé pour refuser l'accès de certaines ressources à des adresses IP spécifiques ou des plages, par exemple.

Si l'utilisateur obtient inopinément une erreur 403 Forbidden, assurez-vous qu'il ne soit pas causé par vos paramètres de .htaccess.

Fichier d'index n'existe pas

404 Not Found

Le code d'état 404, ou une erreur Introuvable, signifie que l'utilisateur est en mesure de communiquer avec le serveur, mais il est incapable de localiser le fichier demandé ou ressource.

404 erreurs peuvent se produire dans une grande variété de situations. Si l'utilisateur reçoit de façon inattendue une erreur 404 Introuvable, voici quelques questions à poser pendant le dépannage:

  • Le lien qui a dirigé l'utilisateur à votre ressource de serveur ont une erreur typographique dans ce?
  • Est-ce que le type d'utilisateur dans l'URL erronée?
  • Est-ce que le fichier existe dans l'emplacement correct sur le serveur? Est-ce la ressource a été déplacé ou supprimé sur le serveur?
  • La configuration du serveur a l'emplacement racine correct du document?
  • Est-ce que l'utilisateur qui est propriétaire du processus de travail du serveur Web ont des privilèges à parcourir le répertoire que le fichier est en? (Astuce: répertoires exigent lecture et d'exécution à accéder)
  • La ressource est en cours d'accès un lien symbolique? Si oui, vérifiez que le serveur Web est configuré pour suivre les liens symboliques

500 Internal Server Error

500 code d'état ou une erreur de serveur interne. signifie que le serveur ne peut pas traiter la demande pour une raison inconnue. Parfois, ce code apparaît lorsque des erreurs 5xx plus spécifiques sont plus appropriés.

Cette cause la plus courante de cette erreur est une mauvaise configuration du serveur (par exemple un fichier .htaccess malformé) ou les paquets manquants (par exemple en essayant d'exécuter un fichier PHP sans PHP installé correctement).

502 Mauvaise passerelle

Le code d'état 502 ou erreur Bad Gateway, signifie que le serveur est un serveur de passerelle ou proxy, et il ne reçoit pas une réponse valide à partir des serveurs de back-end qui devrait remplir en fait la demande.

Si le serveur en question est un serveur proxy inverse, comme un équilibreur de charge, voici quelques petites choses à vérifier:

  • Les serveurs back-end (où les requêtes HTTP sont transmises à) sont en bonne santé
  • Le proxy inverse est configuré correctement, les backends appropriés spécifiés
  • La connexion réseau entre les serveurs de back-end et le serveur proxy inverse est en bonne santé. Si les serveurs peuvent communiquer sur d'autres ports, assurez-vous que le pare-feu permet le trafic entre les
  • Si votre application Web est configuré pour écouter sur une prise, assurez-vous que la prise existe dans l'emplacement correct et qu'il dispose des autorisations appropriées

503 Service Indisponible

Le code d'état 503 ou erreur de service disponible, signifie que le serveur est surchargé ou en maintenance. Cette erreur implique que le service devrait être disponible à un moment donné.

Si le serveur est en cours de maintenance, cela peut indiquer que le serveur ne dispose pas assez de CPU ou de ressources mémoire pour traiter toutes les requêtes entrantes, ou que le serveur Web doit être configuré pour permettre plus d'utilisateurs, fils ou processus.

504 portail expiré

Le code d'état 504, ou une erreur Timeout Gateway, signifie que le serveur est un serveur de passerelle ou proxy, et il ne reçoit pas de réponse à partir des serveurs d'arrière-plan dans la période de temps autorisée.

Cela se produit généralement dans les situations suivantes:

  • La connexion réseau entre les serveurs est pauvre
  • Le serveur principal qui est la demande est remplit trop lent, en raison de mauvaises performances
  • La durée du délai d'attente du serveur de passerelle ou proxy est trop court

Conclusion

Maintenant que vous êtes familier avec les codes d'erreur HTTP les plus courants et des solutions communes à ces codes, vous devriez avoir une bonne base pour les problèmes de dépannage avec vos serveurs Web ou des applications.