Le DNS et les redirections HTTP(S) – Comment fonctionnent-ils de pair ?

Dans le monde des sites web et des noms de domaine, il arrive fréquemment de souhaiter rediriger l’utilisation d’un nom de domaine – dans la barre d’adresse d’un navigateur par exemple – vers un autre pour accéder à un site web. Par exemple :

  • Rediriger un-chouette-site.fr vers www.un-chouette-site.fr
  • Rediriger www.un-autre-domaine.fr vers www.un-chouette-site.fr

Cependant, il n’est pas toujours très simple de comprendre comment tout cela fonctionne, ni comment s’y prendre pour configurer ces redirections. Dois-je configurer la redirection au niveau de la zone DNS ? Au niveau de mon serveur web ? Les deux ? L’un ou l’autre au choix ?

Cet article a pour objet de détailler la distinction entre « redirection » DNS et redirection HTTP, et de présenter comment ces deux protocoles fonctionnent ensemble.

Précision : dans la suite, nous ne distinguerons pas le HTTP et le HTTPS (protocole HTTP sécurisé par un certificat). Pour le sujet qui nous intéresse ici, cela ne présente pas de différence.

Bien comprendre la différence entre le DNS et le HTTP

Le DNS et le HTTP sont deux protocoles tous deux indispensables au bon fonctionnement du web, mais qui n’ont pas le même rôle

Prenons l’exemple d’un utilisateur qui souhaite accéder au site blog.nameshield.com. Il renseigne donc blog.nameshield.com dans la barre d’adresse de son navigateur préféré.

  1. Avant de pouvoir envoyer une requête afin d’obtenir le contenu de la page d’accueil du site, le navigateur doit connaître à quelle adresse IP il doit envoyer cette requête. C’est là que le DNS entre en jeu. Le navigateur envoie donc une requête DNS (en utilisant le protocole DNS) à un résolveur : « Donne-moi l’adresse IP associée à blog.nameshield.com ». Il obtient en retour une adresse IP (81.92.84.102) configurée au niveau d’un serveur DNS autoritaire. On parle de résolution du domaine blog.nameshield.com.
  2. Le navigateur peut ensuite envoyer la requête HTTP (en utilisant le protocole HTTP) au serveur HTTP (ou serveur web) dont il vient d’obtenir l’adresse IP : « Donne-moi le contenu de la page web blog.nameshield.com ». Il obtient en retour le contenu de la page à afficher.

Le protocole DNS propose des types d’enregistrements qui permettent de « rediriger » un domaine vers un autre : en particulier le type CNAME. Même si on parle facilement de « redirection » DNS, le terme « alias » est plus approprié. Cela ne redirige pas à proprement parler, mais indique que le domaine qu’on résout est un alias d’un autre domaine. Il faut alors résoudre cet autre domaine pour obtenir l’adresse IP recherchée.

Prenons un exemple : on souhaite créer une redirection de www.un-autre-domaine.fr vers le site www.un-chouette-site.fr. Si on configure la zone DNS de un-autre-domaine.fr avec un enregistrement CNAME de ce type : www.un-autre-domaine.fr CNAME www.un-chouette-site.fr, cela revient à dire : « Vous voulez connaître l’adresse IP associée à www.un-autre-domaine.fr ? Eh bien cherchez celle associée à www.un-chouette-site.fr et vous aurez votre réponse. ». Une deuxième requête DNS sera envoyée pour résoudre www.un-chouette-site.fr et obtenir l’adresse IP. Le navigateur disposera bien de l’adresse IP du serveur HTTP qui nous intéresse (celui qui héberge le site web www.un-chouette-site.fr), mais cela ne changera rien au contenu de la requête HTTP envoyée par le navigateur : « Donne-moi le contenu de la page web www.un-autre-domaine.fr ».

Il est important de noter que la requête HTTP envoyée par le navigateur contient le nom du site (ou host – ici www.un-autre-domaine.fr) auquel on souhaite accéder. En effet, un même serveur (et donc une même adresse IP) peut héberger des dizaines de sites web différents. Il ne répondra positivement qu’aux requêtes HTTP contenant un host pour lequel il est configuré. Connaître l’adresse IP du serveur web ne suffit donc pas, il faut aussi lui adresser une requête HTTP à laquelle il est capable de répondre. Envoyer une requête http://www.un-autre-domaine.fr à un serveur configuré uniquement pour répondre à http://www.un-chouette-site.fr ne fonctionnera pas !

Le protocole HTTP propose lui aussi un système de redirections (ici on parle bien de redirections). Un serveur HTTP peut-être configuré pour rediriger un host vers un autre. Par exemple, s’il reçoit des requêtes HTTP « Donne-moi le contenu de la page web www.un-autre-domaine.fr. », il répondra « Cette ressource est redirigée vers http://www.un-chouette-site.fr. ». Alors le navigateur reprendra les différentes étapes :

  1. Résolution DNS de www.un-chouette-site.fr
  2. Envoi d’une requête http://www.un-chouette-site.fr à l’adresse IP obtenue
  3. Affichage de la page web obtenue

Comment bien faire fonctionner ensemble le DNS et les redirections HTTP ?

Récapitulons :

  • Le DNS sert à résoudre un nom de domaine pour obtenir une adresse IP.
  • Les requêtes HTTP sont envoyées à une adresse IP, et contiennent le host du site web auquel on souhaite accéder.
  • Les serveurs HTTP peuvent retourner différents contenus en fonction du host présent dans la requête : une page web qu’ils hébergent, une redirection pour laquelle ils ont été configuré, ou bien une erreur si le host leur est inconnu.

Donc, pour faire fonctionner correctement une redirection (toujours avec notre exemple), il faut :

  • Un enregistrement DNS dans la zone un-autre-domaine.fr pour associer le host www à l’adresse IP d’un serveur web…
  • …serveur web sur lequel doit être configuré une redirection de http://www.un-autre-domaine.fr vers http://www.un-chouette-site.fr.

Nameshield vous simplifie la tâche

Nameshield propose un service de redirections HTTP (et HTTPS) qui simplifie la configuration de ces redirections, que vous pouvez utiliser à partir du moment où votre domaine d’origine est en gestion technique chez Nameshield. Il vous suffit de vous rendre dans l’interface de configuration technique de votre nom de domaine, puis dans l’onglet « Redirections HTTP ». Vous pourrez alors créer une nouvelle redirection sur le host de votre choix, en spécifiant divers paramètres (comme la répercussion des répertoires et ou des paramètres de la requête, par exemple). Notre système se chargera ensuite automatiquement de :

  • Modifier la zone DNS pour ajouter des enregistrements (A/AAAA ou CNAME selon le cas) pour faire pointer vers l’adresse IP du serveur de redirections HTTP Nameshield. Dans l’interface de configuration de la zone, une icône dédiée permet de distinguer facilement ces enregistrements ajoutés automatiquement.
  • Configurer une nouvelle redirection sur notre serveur de redirections HTTP (disposant d’une architecture anycast si vous bénéficiez d’une offre premium) suivant les paramètres demandés.

Votre redirection est ensuite opérationnelle, vous n’avez rien de plus à faire. Aucune modification n’est nécessaire chez votre hébergeur web.

Si vous souhaitez modifier la destination d’une redirection HTTP en place, il vous suffit, depuis la même interface, de modifier la redirection existante (inutile de la supprimer pour en créer une nouvelle). Aucune modification n’est à prévoir sur le DNS, puisque le host redirige déjà vers notre serveur de redirections HTTP. Notre système se chargera de modifier la configuration de ce dernier, et votre nouvelle redirection sera effective en quelques minutes.

Pour toute question relative à cet article, n’hésitez pas à contacter votre équipe de chargé(e)s de clientèle.