Utilisez des redirections standard : ne cassez pas le bouton Précédent !

2005-04-25 : Cette page est la traduction française par Patrick Blanchenay du document intitulé Use standard redirects: don't break the back button ! disponible à l'adresse : http://www.w3.org/QA/Tips/reback. Même si le document original n'a pas valeur normative, il reste la seule référence, notamment parce qu'il est susceptible d'évoluer. Par ailleurs, des erreurs de traduction ont pu survenir.

Techniques à utiliser et techniques à éviter

N'utilisez pas "refresh" pour rediriger

Si vous voulez que http://www.exemple.org/foo affiche en réalité ce qui se trouve à l'adresse http://www.example.org/bar vous ne devez pas utiliser une technique "refresh" telle que :

<META HTTP-EQUIV=REFRESH CONTENT="1; URL=http://www.exemple.org/bar">.

Pourquoi ? Parce que cela pourrait casser le bouton "Précédent" du navigateur. Si le visiteur clique sur Précédent, cela lancera à nouveau le rafraîchissement (refresh) et le visiteur sera à nouveau jeté sur la page même qu'il essayait de quitter. Il s'énervera sans doute et fermera la fenêtre, ce qui n'est pas votre objectif.

Utilisez plutôt des redirections HTTP

Quand on utilise la méta-balise "refresh" pour une redirection, on insère une instruction spécifique dans le document. L'agent utilisateur (que ce soit un navigateur ou le validateur de balisage) est censé télécharger la page, regarder son contenu, trouver l'instruction "refresh", attendre le laps de temps indiqué (qui pourrait être "0" secondes pour un rafraîchissement "immédiat", ou toute autre valeur) et se rendre à la nouvelle adresse.

En revanche, une "redirection HTTP" agit de manière bien plus directe, puisque la redirection s'opère à un autre niveau. Quand l'agent utilisateur (c'est-à-dire un navigateur ou le validateur) contacte d'abord le serveur et demande le document, le _serveur_ lui-même, configuré pour rediriger le document vers une autre adresse, répond à l'agent qu'il devrait plutôt regarder  à la nouvelle adresse.

Par ailleurs, la "redirection HTTP" est plus riche puisqu'elle donne à l'agent utilisateur plus d'information que la simple nouvelle adresse : le serveur indique également l'objet et le type de redirection, qui permet à l'agent utilisateur de réagir différemment selon le type de redirection. Les différents types de redirection HTTP sont (avec le code de statut HTTP (HTTP status code) correspondant, envoyé par le serveur) : la redirection permanente (Permanent Redirect, HTTP 301), la redirection temporaire (Temporary Redirect, 307) et la redirection indéfinie (302).

Suivez les liens ci-dessous pour de la documentation et des tutoriels pour configurer votre serveur Web.

En savoir plus


XHTML 1.0 valide !
Créé par Dan Connolly - maintenu par la QA Team
Dernière modification $Date: 2005/02/01 09:58:19 $ par $Author: dom $

Droit de copie ©2000-2003 W3C ® (MIT, ERCIM, Keio), Tous droits réservés. Les règles de responsabilité, de marque déposée, d'utilisation du document et de licence sur les logiciels du W3C s'appliquent. Votre interaction avec ce site est en accord avec notre politique sur la vie privée, pour le public et pour les membres.