Gérer les erreurs sur un site web (e.g. erreur 404)

web,erreur,404,403,500,…

2008-12-15 – 11:40

2000-12-16 – 20:00

2008-12-15 – 11:40

Ô, l'infâme erreur 404! Quiconque a utilisé le web en a un jour été pour ses frais à se trouver confronté à une page introuvable. Ce n'est pour autant pas la seule erreur du protocole HTTP!

Plusieurs autres erreurs que l'erreur 404 existent. En voici la liste en droite ligne de wikipedia, mais vous pouvez aussi vous conformer aux informations qui proviennent du {{{W3C}}} (HTTP 1.1 - Status Code Definitions):

Codes d'erreur HTTP (source: Wikipedia)
Code d'erreur Message Description
4xx: Erreurs Client
400 Bad Request La syntaxe de la requête est erronée
401 Unauthorized Accès à la ressource refusé
402 Payment Required Paiement requis pour accéder à la ressource (non utilisé)
403 Forbidden Refus de traitement de la requête
404 Not Found Document non trouvé
405 Method Not Allowed Méthode de requête non autorisée
406 Not Acceptable Toutes les réponses possibles seront refusées.
407 Proxy Authentication Required Accès à la ressource autorisé par identification avec le proxy
408 Request Time-out Temps d'attente d'une réponse du serveur écoulé
409 Conflict La requête ne peut être traitée à l'état actuel
410 Gone La ressource est indisponible et aucune adresse de redirection n'est connue
411 Length Required La longueur de la requête n'a pas été précisée
412 Precondition Failed Préconditions envoyées par la requête non-vérifiées
413 Request Entity Too Large Traitement abandonné dû à une requête trop importante
414 Request-URI Too Long URI trop longue
415 Unsupported Media Type Format de requête non-supportée pour une méthode et une ressource données
416 Requested range unsatisfiable Champs d'en-tête de requête 'range' incorrect.
417 Expectation failed Comportement attendu et défini dans l'en-tête de la requête insatisfaisable
5xx: Erreurs Serveur
500 Internal Server Error Erreur interne du serveur
501 Not Implemented Fonctionnalité réclamée non supportée par le serveur
502 Bad Gateway Mauvaise réponse envoyée à un serveur intermédiaire par un autre serveur.
503 Service Unavailable Service indisponible
504 Gateway Time-out Temps d'attente d'une réponse d'un serveur à un serveur intermédiaire écoulé
505 HTTP Version not supported Version HTTP non gérée par le serveur
509 Bandwidth Limit Exceeded Code non officiel utilisé par de nombreux serveurs pour indiquer un dépassement de quota.

Lorsqu'une de ces erreurs se présente, le serveur Web, Apache dans notre cas, renvoie un code d'erreur et affiche une explication brève de l'erreur en question. Ces messages sont, pour le commun des mortels, un peu rustres mais il est tout à fait possible de configurer Apache pour qu'un message d'erreur personnalisé soit renvoyé au visiteur.

C'est le sens de la directive ErrorDocument à mettre en {{œ}}uvre dans le fichier de configuration, httpd.conf:


ErrorDocument code-erreur "document"

Voici d'ailleurs ce qu'il est prévu de faire dans le cas du site de Lato Sensu Management:

<VirtualHost localhost:80>
    ServerAdmin patrick.boens@latosensu.be
    DocumentRoot "c:\WebSites\latosensu.be\www\httpdocs"
    ServerName latosensu.be
    ServerAlias latosensu.be *.latosensu.be
    ErrorDocument 400 /errdocs/error.php?id=400
    ErrorDocument 401 /errdocs/error.php?id=401
    ErrorDocument 402 /errdocs/error.php?id=402
    ErrorDocument 403 /errdocs/error.php?id=403
    ErrorDocument 404 /errdocs/error.php?id=404
    ErrorDocument 405 /errdocs/error.php?id=405
    ErrorDocument 406 /errdocs/error.php?id=406
    ErrorDocument 407 /errdocs/error.php?id=407
    ErrorDocument 408 /errdocs/error.php?id=408
    ErrorDocument 409 /errdocs/error.php?id=409
    ErrorDocument 410 /errdocs/error.php?id=410
    ErrorDocument 411 /errdocs/error.php?id=411
    ErrorDocument 412 /errdocs/error.php?id=412
    ErrorDocument 413 /errdocs/error.php?id=413
    ErrorDocument 414 /errdocs/error.php?id=414
    ErrorDocument 415 /errdocs/error.php?id=415
    ErrorDocument 416 /errdocs/error.php?id=416
    ErrorDocument 417 /errdocs/error.php?id=417
    
    ErrorDocument 500 /errdocs/error.php?id=500
    ErrorDocument 501 /errdocs/error.php?id=501
    ErrorDocument 502 /errdocs/error.php?id=502
    ErrorDocument 503 /errdocs/error.php?id=503
    ErrorDocument 504 /errdocs/error.php?id=504
    ErrorDocument 505 /errdocs/error.php?id=505
    
    ErrorDocument 509 /errdocs/error.php?id=509
</VirtualHost>

Ce que cette configuration assure, c'est de lancer un script PHP, error.php, dans le cas où une erreur se présente sur le site. En paramètre, on envoit le numéro d'erreur pour une gestion plus fine de l'erreur. Voyez effectivement ec qui se passe en cas d'erreur 404:


    ErrorDocument 404 /errdocs/error.php?id=404

... le script error.php, se trouvant dans le répertoire errdocs, est exécuté avec en paramètre le code d'erreur rencontrée: ?id=404.

Il est dès lors aisé, dans le script error.php de prendre toutes les mesures nécessaires pour faire face à l'erreur. Voyons d'ailleurs ce qu'il en est de manière plus précise en cas d'erreur 404!

Fournir l'information souhaitée

Pour envisager une approche de traitement de l'erreur, il est utile de se mettre à la place du visiteur qui rencontre l'erreur. Au demeurant, cette personne est intéressée par une page qui contient l'information qu'il recherche, car c'est bien l'information qu'il convoite et non pas la page en tant que telle.

Il est donc essentiel, tant que faire se peut, de lui prodiguer l'information sollicitée et toute stratégie qui met cela en {{œ}}uvre est bienvenue.

Pour autant, il n'est pas toujours facile de déterminer ce que le visiteur cherche! C'est là que le bât blesse, dit-on.

Il est en tout cas un cas auquel vous ne pouvez rien faire, ou si peu. C'est le cas où le visiteur a mentionné lui-même l'{{{URL}}} à atteindre dans la zone de navigation de son browser. Dans ce cas particulier, il n'y a qu'à lui suggérer de retaper l'URL ou alors de se diriger vers votre plan de site (sitemap). Ce genre d'erreur survient souvent d'un signet (bookmark) obsolète.

Si par contre, l'erreur provient par l'utilisation d'une ancre (balise <a>…</a>) alors deux approches différentes peuvent être mises en branle:

  1. Soit l'erreur provient de votre propre site, et alors il est urgent que vous répariez le problème.
  2. Soit l'erreur provient d'un site qui vous a référencé (un moteur de recherches par exemple) et là il conviendra de prendre contact avec le site en question pour l'inviter à corriger l'erreur.

Renseigner le visiteur

Traduire l'explication de l'erreur

Prévenir le webmaster

Corriger les erreurs provenant de sites extérieurs

Stuur uw eigen commentaar


(niet gepubliceerd)





Machine de turing




(*) verplicht veld.

Vermijd meerdere malen de knop “ Poster ” in te drukken. Het kan enkele seconden duren vooral u verwittigd wordt dat uw commentaar door de server in anmerking genomen werd.

Notes à propos des commentaires

We vragen u behoedzaam te zijn en de regels van wellevendheid te respecteren. Commentaren die niet gepast of kwetsend zijn kunnen gewijzigd of zelfs verwijderd worden.

De e-mail adressen die jullie achterlaten worden NOOIT getoond omwille van vertrouwelijkheid: zij dienen enkel om u te kunnen contacteren om een of ander punt te verduidelijken indien nodig.

Noteer dat alle HTML sleutelwoorden uit uw commentaren worden weggehaald. Niettemin kan u volgende labels gebruiken om uw tekst te formatteren:

  • [p] en [/p] : paragraph
  • [b] en [/b] : bold
  • [i] en [/i] : italic
  • [q] en [/q] : quote
  • [http] en [/http] : anchor
  • [pre] en [/pre] : preformatted tekst
  • [code] en [/code] : broncode

Dank u

< September 2010 >
Ma Di Wo Do Vr Za Zo
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30