Nos articles concernant les techniques web sont centrés sur des solutions pratiques qui mettent en œuvre, le plus souvent, notre framework web : Vae Soli!
Des articles généraux sont également fournis dans le respect des standards du web.
Tous nos articles web sont disponibles sous le couvert de la
licence
Creative Commons — Paternité - pas de modification.
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) :
| 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 !
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 :
Ajoutez un nouveau commentaire
Notes à propos des commentaires
Nous vous demandons de bien vouloir faire diligence et de respecter les règles les plus élémentaires de bienséance. Les commentaires non appropriés ou offensants pourront être édités voire supprimés.
Les adresses email que vous pourriez nous laisser ne sont JAMAIS affichées par mesure de confidentialité : elles ne nous servent qu'à vous contacter pour éclaircir un point ou l'autre si besoin était.
Notez bien que toutes les balises HTML sont retirées de votre commentaire néanmoins vous pouvez utiliser les marques suivantes pour vous aider à formater votre texte :
Merci