angle-uparrow-clockwisearrow-counterclockwisearrow-down-uparrow-leftatcalendarcard-listchatcheckenvelopefolderhouseinfo-circlepencilpeoplepersonperson-fillperson-plusphoneplusquestion-circlesearchtagtrashx

Pourquoi votre site web canonical name doit être 'www' (ou "app" ou autre chose)

Une URL de site web commençant par 'www' empêche que les données des visiteurs (cookies) soient envoyées vers des destinations non souhaitées.

27 novembre 2020
Dans Internet
post main image
https://unsplash.com/@volcanono

Je sais, il existe de nombreux articles sur ce sujet. Mais j'ai pensé qu'il était utile d'écrire un billet sur ce sujet parce que je ne connaissais pas tous les détails.

Je suppose qu'il est possible d'accéder à votre site web sur l'internet en utilisant une URL "without-www" et une URL "with-www". Cet article ne concerne pas la sélection d'une URL de site web à des fins de marketing. Même si vous utilisez une URL "with-www" pour votre site web, vous pouvez communiquer l'URL "without-www" à votre public.

Cet article traite plutôt des implications techniques de l'utilisation d'une URL " 'www' " ou de l'absence d'URL " prefix ".

Définitions

Nom de domaine Un nom de domaine est le nom unique qui identifie une entité comme un site web sur l'internet. Un nom de domaine comporte toujours deux ou plusieurs parties séparées par des points.

Adresseweb ou URL L'adresse web ou URL est l'emplacement d'une entité sur l'internet. Il peut s'agir d'un fichier, d'une page web, d'un site web.

Apex de domaine Un apex de domaine est la racine d'un domaine. Par exemple, example.org est un sommet de domaine. Et www.example.org, mail.example.org sont appelés sous-domaines de example.org. Un domaine apex est également appelé domaine de base, nu ou nue.

Nom canonique Un canonical name, également appelé enregistrement CNAME , est un enregistrement DNS qui définit un nom d'hôte d'un ordinateur ou d'un serveur. Il est utilisé pour ajouter un prefix comme le 'www' à un domaine racine.

Système de noms de domaine(DNS) Le système de noms de domaine, ou DNS, est un système décentralisé pour les ordinateurs connectés à l'internet. Il est souvent appelé l'annuaire téléphonique de l'internet. Sa fonction la plus importante est la traduction d'une URL en une adresse IP. Cette traduction est effectuée par des serveurs de noms.

Serveur de noms Les serveurs de noms font partie du système de noms de domaine (DNS). Si quelqu'un modifie les enregistrements DNS sur un serveur de noms, ces modifications sont propagées à tous les serveurs de noms faisant partie du DNS. Ils effectuent la traduction effective de l'URL en adresse IP.

Que se passe-t-il lorsque vous tapez une URL dans votre navigateur

Avant d'entrer dans les détails, résumons comment une page web est affichée sur votre écran. L'URL que vous saisissez dans votre navigateur est envoyée à un serveur de noms. Le serveur de nom traduit cette URL en une adresse IP et la renvoie à votre navigateur. Votre navigateur se connecte à cette adresse IP et récupère la ressource, souvent une page web.

Les données qui s'affichent dans le navigateur sont généralement sélectionnées par trois ou quatre systèmes :

  • Le système de noms de domaine (DNS)
  • (facultatif) Un serveur proxy
  • Le serveur web, par exemple Nginx, Apache
  • L'application web

La traduction de l'URL en adresse IP se fait par un ou plusieurs enregistrements DNS.

Le serveur optionnel proxy est un serveur intermédiaire qui sépare le(s) site(s) web de l'internet. Pour simplifier, je suppose qu'il n'y a pas de serveur proxy dans notre connexion.

Le serveur web peut être configuré de plusieurs façons. Il peut rediriger, ou réécrire, une URL "without-www" vers une URL "with-www", ou vice versa. Il peut également rediriger, ou réécrire, un HTTP vers HTTPS.

L'application web reçoit l'URL du serveur web, la traite et renvoie au serveur web les données de la ressource demandée, un fichier ou une page web. Enfin, le serveur web renvoie ces données au navigateur.

Redirection : vers "without-www", vers "with-www", ou aucune redirection

Bien entendu, votre site web doit être accessible à partir d'une URL et la plupart des sites web supportent une URL "without-www" et une URL "with-www". Mais qu'en est-il de la redirection ?

Pas de redirection

J'aime le cas de non-redirection car il s'agit d'un WYSIWYG (What You See Is What You Get), ce qui signifie que lorsque la page est chargée, l'URL dans le navigateur commence par ce que vous avez tapé dans le navigateur. Il est déroutant de taper l'URL "with-www" qui devient "without-www", ou l'inverse. Je n'ai jamais aimé qu'un ordinateur change automatiquement les choses pour moi ...

En vérifiant certains sites web sur l'internet, j'ai constaté que seuls quelques sites conservaient l'URL telle que tapée par le visiteur dans le navigateur, "with-www " restait " with-www", et "without-www " restait " without-www". Il n'y en a pas beaucoup, donc ce n'est probablement pas une bonne idée, pourquoi ont-ils choisi de faire cela de toute façon, il doit y avoir une raison ?
Du point de vue du SEO (Search Engine Optimization), ce n'est certainement pas la meilleure solution. Votre site web peut avoir des entrées dans les bases de données des moteurs de recherche, des URL "with-www" et des URL "without-www".

Redirection vers l'URL "without-www

Dans ce cas, lorsque vous saisissez l'URL "with-www", l'adresse web de votre navigateur devient l'URL "without-www". Quelques exemples de sites web "without-www ":

  • twitter.com
  • github.com
  • stackoverflow.com

Cela signifie que certains des meilleurs sites redirigent vers une URL "without-www". Elle est plus courte, plus moderne, plus agréable, dans le navigateur. Est-ce la raison pour laquelle ils ont choisi de procéder de cette manière ?

Redirection vers l'URL "with-www

Dans ce cas, lorsque vous saisissez l'URL "without-www", l'adresse web de votre navigateur devient l'URL "with-www". Quelques exemples de sites web "with-www":

  • www.nytimes.com
  • www.python.org
  • www.apple.com

Il semble que la plupart des principaux sites redirigent vers une URL "with-www". Cela semble démodé ou y a-t-il une très bonne raison à cela ?

Cacher 'www' dans le navigateur

Récemment, des navigateurs web populaires comme Chrome et Safari ont commencé à cacher la partie 'www' d'une URL. L'explication de Google est qu'ils "veulent rendre les URL plus faciles à lire et à comprendre, et supprimer les distractions", voir les liens ci-dessous.

Mais attendez, cela signifie probablement que les principaux sites n'ont pas l'intention d'utiliser les URL "without-www" mais s'en tiennent aux URL "with-www". Que se passe-t-il ici ?

Pourquoi la plupart des principaux sites web redirigent les URL "without-www " vers les URL "with-www

Nous arrivons enfin à quelque chose. La plupart des sites web redirigent les URL "without-www" vers les URL "with-www" pour une ou plusieurs des raisons suivantes :

Cookies

Pour les propriétaires de sites web, la raison la plus importante est ce qui se passe avec cookies. Pour une URL "with-www", un cookie est envoyé au sous-domaine 'www' uniquement.

Pour une URL "without-www", le cookie est partagé par tous les sous-domaines. Les données cookie sont envoyées avec chaque demande et réponse, qu'un sous-domaine utilise ou non ces données.

Pourquoi est-ce important ?

Si vous avez un sous-domaine, static.example.com, stockant vos données images, javascripts et stylesheets, les données cookie seront toujours envoyées à ce domaine. Pire encore, si vous utilisez un CDN externe (Content Delivery Network) sur une URL comme static.yourdomain.com, il peut être impossible d'empêcher le cookie d'y aller.

De plus, un cookie contient des données sur les visiteurs de votre site web, ce qui signifie que vous créez un problème de confidentialité et une possible fuite de sécurité si vous ne prenez pas de mesures pour l'empêcher.

Flexibilité, disponibilité

Il y a une autre raison, qui a trait à la flexibilité, à la disponibilité. Mais cela ne s'applique que si vous utilisez le service DNS du fournisseur où vous hébergez votre site web, voir les liens ci-dessous.

Paramétrage des enregistrements DNS et redirection du serveur web

Maintenant que nous savons que nous devrions toujours avoir une URL "with-www" pour notre site web, comment faire ?

Pour les enregistrements DNS, il y a deux façons de procéder :

L'enregistrement A et l'enregistrement CNAME :

 Type  | Host             | Data
-------+------------------+-------------
 A     |  example.org       | 192.0.1.2
  CNAME  |  www.example.org   |  example.org

Ou deux enregistrements A :

 Type  | Host             | Data
-------+------------------+-------------
 A     |  example.org       | 192.0.1.2
 A     |  www.example.org   | 192.0.1.2

Nous devons également indiquer au serveur web de rediriger les URL "without-www" vers les URL "with-www". Voici un exemple de redirection avec Nginx :

  if ($http_host = "example.org") {
    rewrite ^ $scheme://www.example.org$request_uri? permanent;
  }

Résumé

Le titre de cet article indique que votre site web canonical name doit être www (ou app ou quelque chose comme ça). En effet, vous utilisez généralement un enregistrement CNAME , ou Canonical Name record, pour définir le sous-domaine 'www' .

L'utilisation d'une URL "with-www" pour votre site web permet de servir des ressources statiques à partir d'un domaine sans cookie, ce qui réduit les transferts de données. L'utilisation d'une URL "with-www " pour votre site web permet également d'éviter les éventuels problèmes de confidentialité et de sécurité des données de vos visiteurs (cookie).

Liens / crédits

Choosing between www and non-www URLs
https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs

Domain IP address for www and non-www for Canonical URL
https://stackoverflow.com/questions/19566856/domain-ip-address-for-www-and-non-www-for-canonical-url

Issue 883038: Feedback: Eliding www/m subdomains
https://bugs.chromium.org/p/chromium/issues/detail?id=883038#c114

To WWW or not WWW
https://www.netlify.com/blog/2017/02/28/to-www-or-not-www/

Why a domain’s root can’t be a CNAME — and other tidbits about the DNS
https://www.freecodecamp.org/news/why-cant-a-domain-s-root-be-a-cname-8cbab38e5f5c/

En savoir plus...

DNS Internet

Laissez un commentaire

Commentez anonymement ou connectez-vous pour commenter.

Commentaires (2)

Laissez une réponse

Répondez de manière anonyme ou connectez-vous pour répondre.

avatar

Very clear and useful. Thanks.

avatar

Another brilliant and helpful post. Thanks! Why don't you include an About on your blog? Can't seem to locate it.