Envoyer un mail à l’auteur
xavier at ultra-fluide.com

Ressources

Les redirections web

Une redirection web est un processus automatique par lequel un navigateur web en charge de consulter un contenu à une adresse donnée sur la toile se trouve finalement conduit à présenter à son utilisateur un contenu provenant d'une autre adresse web.

La redirection web est la résultante d'une association ou "mapping" entre l'adresse initialement demandée et l'adresse effective du contenu à délivrer.

La navigation sur le web

Un internaute qui utilise son navigateur pour consulter un site web, indique (plus ou moins consciemment) une url (Uniform Resource Locator, autrement dit une adresse web) qui désigne un contenu (en général une page web). Le navigateur émet une requête en direction du serveur hébergeur du contenu souhaité en spécifiant cette url. Cette requête transmet également au serveur des caractéristiques relatives à l'environnement de l'internaute et bien souvent :

Le plus souvent le serveur retourne une page web bien précise associée à l'url demandée quelles que soient les informations complémentaires véhiculées par la requête http. Cependant, dans certains cas particuliers le serveur web analyse ces informations et propose une page spécifique qui dépend donc du contexte de l'internaute. C'est ce dernier cas qui nous intéresse ici.

2 cas de figures sont possibles :

Exemples d'utilisation de redirections web

Répondre à une requête portant sur une url en forçant la visite d'une autre url peut paraître un peu déplacé. En réalité les redirections ont été introduites dans le protocole http pour permettre aux gestionnaires de sites web d'apporter un meilleur service à l'internaute, partant du postulat que le serveur peut déterminer dans certains cas qu'un autre contenu convient mieux que celui associé à l'adresse demandée à l'origine.

Les redirections peuvent être utilisées lorsqu'aucun contenu n'existe à l'url requise par l'internaute, par exemple pour :

Dans le premier cas, la redirection permet de présenter un contenu s'approchant de l'ancien contenu disparu en évitant ainsi d'afficher une page d'erreur. Dans le second cas, le webmaster dispose de plusieurs noms de domaine pour des raisons historiques ou pour éviter le typosquatting par exemple. Supposons que www.mondomain.fr est le domaine principal, mais que www.mondomain.com existe également pour le même site web. A chaque demande d'une page sur www.mondomain.com, une redirection mise en place par le serveur renvoie le contenu dont l'url est attachée au domaine principal.

Il existe de nombreuses autres situations justifiant des arbitrages sur les contenus au niveau serveur :

Techniques de redirections web

Il existe 3 catégories de redirection :

Redirection http

Le protocole http prévoit l'échange de messages structurés entre le serveur web et le navigateur, comme une succession de requêtes et de réponses dont l'objet final est de délivrer des contenus web au navigateur. Les réponses du serveur web sont schématiquement subdivisées en 3 blocs :

Le serveur web indique une redirection au navigateur de la façon suivante :

Redirection javascript

Dans le cas d'une redirection javascript, le serveur renvoie une réponse "classique". Celle-ci comprend une page web dans le corps de la réponse du message http (contrairement à la redirection http). Un fragment javascript figure dans cette page et doit s'exécuter au chargement de la page. Ce javascript commande au navigateur le chargement d'une nouvelle page web. Les webmasters utilisent souvent un javascript de ce type :

<script type="text/javascript">
   ...
  document.location.replace("http://website.dom/new-page.htm");
   ...
</script>

Ce type de redirection ne fonctionne pas lorsque l'internaute a désactivé l'interpréteur javascript de son navigateur.

Redirection méta refresh

Le mécanisme est très similaire au cas précédent, le serveur revoit une page web dans le corps de la réponse du message http. Chaque page web contient dans son code source html des métadonnées non visibles par l'internaute mais utile pour le navigateur. Ces informations sont comprises dans la balise <head> </head> du code source, qui est interprété comme l'en-tête de la page web. Pour induire une redirection par "méta refresh" il suffit d'introduire dans l'en-tête de page une balise meta telle que :

<head>
  ... métadonnées...

  <meta http-equiv="refresh" 
                   content="0;url=http://website.dom/new-page.htm />

  ... métadonnées suite...
</head>

Bloquer les redirections avec son navigateur

Dans certains cas, par curiosité ou pour des raisons pratiques en tant que développeur ou webmaster, l'internaute souhaite connaître des caractéristiques ou consulter la page d'origine. Par exemple, un webmaster recherche le PageRank Google d'une page web avant redirection, ou un internaute veut consulter une page dans sa langue d'origine. Vous trouverez ci-dessous quelques astuces pour bloquer les redirections avec Firefox.

Bloquer les redirections javascript ou méta refresh

Firefox dispose des paramétrages nécessaires à l'autorisation ou au blocage de ces redirections. Plusieurs extensions disponibles sous ce navigateur proposent un accès simplifié à ces paramétrages. Nous utilisons Toolbar Enhancements, plugin permettant d'enrichir la barre d'outils et de disposer de deux boutons, l'un pour désactiver l'interpréteur javascript et l'autre pour interdire les redirections méta refresh dans l'onglet courant. Web Developer dispose des mêmes fonctionnalités via une interface un tout petit peu moins directe.

Pour les utilisateurs préférant se passer de plugin, le fonctionnement de javascript sous Firefox peut être géré avec les menus suivants :

> outils > options > contenu > activer JavaScript

Concernant les redirections méta refresh :

> outils > options > avancé > général > prévenir lorsque des sites web tentent de rediriger ou de recharger la page

Bloquer les redirections http

Il n'existe pas à notre connaissance de moyen simple pour gérer les redirections http.

Cependant, en saisissant about:config dans la barre d'adresse de Firefox, le navigateur affiche l'ensemble de ses variables internes.
En saisissant maintenant redirection dans le champ filtre, apparaît la variable network.http.redirection-limit. La valeur de cette variable est le nombre maximum de redirections http successives que le navigateur s'autorise à suivre avant d'afficher une page d'erreur. Cette variable a été mise en place pour éviter un "plantage" apparent survenant dans le cas ou un dysfonctionnement du serveur induirait des redirections en boucle.
Dans la pratique, mettre cette variable à 0 interdit toute redirection http. Attention cependant, il n'est pas conseillé de maintenir cette variable à 0 pour une navigation normale.


Agence de communication Ultra-Fluide : 01 47 70 23 32 - contact at ultra-fluide.com - 44 rue Richer 75009 Paris.