SNT Web URL

Identification

Infoforall

4 - Comprendre les urls


Nous avons vu que le Web est constitué de l'ensemble des documents hypertextes accessibles via un navigateur par exemple.

Mais comment parvenir à trouver une ressource parmi cette multitude ?

Documents de cours : pdf ou odt.

1 - Qu'est-ce qu'une URL ?

(Rappel) 1.1 Protocole HTTP

A - Principe
Le protocole HTTP fait communiquer deux programmes :

  • Un programme client HTTP qui se connecte à
  • un programme serveur HTTP.

Le protocole HTTP est basé sur une communication en 3 étapes :

1 Requête - 2 - Traitement - 3 - Réponse
Requête - Traitement - Réponse
  1. Le client envoie sa requête (à l'aide d'une URL).
  2. Le serveur reçoit et analyse la requête
  3. Le serveur renvoie sa réponse (elle contient souvent un texte nommé code-source HTML)
B - Code de réponse

La réponse HTTP contient notamment un code de réponse. Vous connaissez certainement le 404.

Voici quelques codes courants :

  • Code 200 : le serveur dit que tout s'est bien passé.
  • Code 404 : le serveur ne trouve aucune ressource correspondant à la requête.
  • Code 300 : le serveur dit que la ressource n'a pas été modifiée depuis la dernière fois que le client lui a demandé. Le client doit juste aller voir dans sa mémoire-cache.
  • Code 500 : le serveur rencontre une erreur de programmation en tentant de résoudre la requête....
C - Le programme client usuel : le navigateur Web

Nous avons déjà défini ce programme comme un interpréteur de code HTML dans les activités précédentes.

Donons maintenant une définition plus précise :

Un navigateur Web est un programme capable de réaliser plusieurs tâches, notamment :
  • Communiquer en HTTP avec un serveur distant ;
  • Interpréter le code HTML pour produire un affichage ;
  • Générer un historique des documents Web déjà visités ;
  • ...

Quelques exemples de navigateur Webs :

  • Firefox de la fondation Mozilla,
  • le moteur libre Chromium, produit par Google
  • Chrome, une surcouche propriétaire de Chromium, produit par Google.
  • Brave, une surcouche libre de Chromium, produit par Brave Software.
  • Safari pour Apple
  • ...

Attention, tous les navigateurs n'ont pas le même degré de sécurité.

Le code-source d'un navigateur libre est accessible et lisible par tous. Il ne peut pas, à priori, pas contenir d'instructions malveillantes.

Dans le cas d'un navigateur propriétaire, vous ne voyez que les effets apparents du programme. Vous ne pouvez pas savoir exactement ce que fait ce programme sur votre propre système.

Comment le client formule-t-il sa requête ?

Nous verrons le fonctionnement d'HTTP un peu plus tard mais il est évident qu'il faut localiser le bon serveur et localiser la ressource qu'on désire sur ce serveur.

C'est qu'interviennent les "adresses" ou URL.

01 ✔° Ouvrir un navigateur (qui est un client HTTP) et copier l'adresse ci-dessous dans la barre d'adresses du navigateur. vous devriez atteindre une page Web, celle du CERN concernant le Web.

http://info.cern.ch/hypertext/WWW/TheProject.html

Attention : ne tapez pas l'adresse dans la barre d'un moteur de recherche. Tapez bien cela directement dans la barre d'adresses du navigateur. Sur certains navigateurs, celle-ci est maintenant cachée par défaut : si vous tapez une mauvaise adresse, c'est le moteur de recherche qui prend le relais.

1.2 URL

URL veut dire Uniform Resource Locator.

Chaque URL ne renvoie qu'une ressource unique, sans ambiguïté possible.

Structure d'une URL

http://info.cern.ch/hypertext/WWW/TheProject.html

L'URL est composée de 3 parties :

  • Le protocole : on explique dans quelle "langue" on parle.
  • Ici, c'est http.

  • L'adresse du serveur à joindre : on explique à qui on veut parler. On commence par placer :// pour indiquer le début du transfert du nom de serveur.
  • Ici, c'est info.cern.ch.

  • L'adresse de la ressource voulue sur ce serveur :
  • Ici /hypertext/WWW/TheProject.html.

Le premier / indique que l'adresse est donnée depuis la racine du site, son "point de départ".

Explications : /hypertext/WWW/TheProject.html

  • / : part de la racine
  • hypertext/WWW/ : va dans le dossier hypertext puis dans le sous-dossier www puis
  • TheProject.html : localise le fichier nommé TheProject.html

02° Déterminer les 3 parties de cette URL :

https://doc.infoforall.fr/commun/images/accueil_blender_150.png

  • le protocole ?,
  • le serveur à joindre ?,
  • la ressource demandée sur le site ?

...CORRECTION...

  • le protocole : https, attention au S.
  • le serveur à joindre : doc.infoforall.fr
  • la ressource à faire sur le site : /commun/images/accueil_blender_150.png
1.3 HTTP ou HTTPS ?

HTTP veut dire Hypertext Transfer Protocol (soit protocole de transfert hypertexte). C'est le protocole de base du Web.

Ce protocole est simple mais a un gros défaut : il ne chiffre pas les données lors du transfert.

Si quelqu'un écoute la communication, il peut donc connaitre la teneur de l'échange entre le serveur et le client.

HTTPS (avec un S pour sécurisé) est une variante du HTTP : le message est chiffré. Seul le serveur et le client peuvent connaitre la teneur de l'échange.
ATTENTION : cela ne veut pas vraiment dire que l'interlocateur est nécessairement quelqu'un de confiance. Cela veut juste dire qu'on ne peut pas vous écouter.

03° Quelques questions liées à la sécurité :

  1. Quel est le problème (énorme) de sécurité rencontré si vous vous connectez à un site en HTTP pour réaliser un paiement en ligne ?
  2. Comment connaître facilement la nature HTTP ou HTTPS de la communication ?
  3. Quelle est l'icône située près de la barre d'adresses qui représente le fait que la connexion est chiffrée ?

...CORRECTION...

  1. Le manque de sécurité ne provient pas du site en lui-même (un site en HTTP peut être tenu par des gens sérieux). NEANMOINS, s'ils sont sérieux, ils devraient savoir qu'on peut assez facilement écouter les paquets qui transitent jusqu'à eux. Transmettre des informations bancaires en HTTP (en clair donc) n'est pas sérieux à l'heure actuelle.
  2. Il suffit de regarder le début de l'URL qui doit commencer par http ou https.
  3. La présence d'un cadenas prouve que le site utilise bien un système de chiffrement.

04° HTTPS signifie-t-il que le site est sérieux et qu'on peut lui transmettre des informations bancaires sans problème ?

...CORRECTION...

La sécurité ne provient pas du signe HTTPS.

Le S signifie juste que la communication entre vous et le site est chiffrée.

En appuyant sur le cadenas, vous pouvez en apprendre un peu plus, notamment vous aurez l'idendité de la société qui permet de sécuriser la communication entre vous et le serveur.

Mais attention, un escrot peut toujours se faire passer pour un site sérieux dans un premier temps. Comme tout commerce en réalité !

Avant de lancer un paiement, tenter donc de vous renseigner sur ce site via un moteur de recherche. Cherchez des avis de clients par exemple.

2 - Nom de domaine et registraires

2.1 Nom de domaine

Structure d'un nom de serveur

Un nom de serveur est constitué d'un ensemble de mots séparés par des points.

  • La toute dernière partie se nomme l'extension.
  • Dans info.cern.ch, l'extension est .ch (qui caractérise les sites suisses)

  • Le nom de domaine est constitué des deux dernières parties : un mot plus l'extension.
  • Dans info.cern.ch, le nom de domaine est cern.ch

  • Toutes les parties à gauche du nom de domaine sont les sous-domaines qui sont gérés par le propriétaire du nom de domaine principal.
  • Dans info.cern.ch, le sous-domaine est info.

2.2 Propriétaire d'un nom de domaine

Un registraire est une société ou association auprès de qui on peut acheter un nom de domaine à l'année.
Le propriétaire d'un nom de domaine peut rajouter autant de sous-domaines qu'il veut à gauche du nom de domaine.

Les noms de domaines d'extension .fr sont gérés par l'Association française pour le nommage Internet en coopération, l'AFNIC.

Le propriétaire de infoforall.fr peut créer :

  • www.infoforall.fr
  • doc.infoforall.fr
  • jecomprendsrienalinformatique.infoforall.fr
  • ...

Dans tous les cas, le propriétaire reste le même.

Un autre exemple ?

paypal.infoforall.fr appartient en réalité à infoforall.fr.

infoforall.paypal.fr appartient en réalité à paypal.fr.

Le sous-domaine le plus courant est www pour world wide web. Il était utilisé très couramment pour montrer que cette adresse menait à un site Web.

06° Observer l'adresse pour cette activité dans Firefox. Quelle est la couleur du sous-domaine ?

...CORRECTION...

Firefox affiche le sous-domaine en gris et le domaine principal en noir :

https://www.infoforall.fr/act/snt/comprendre-les-urls/

07 ° Remplir les cases pour les adresses proposées dans le tableau ci-dessous. Recopier sur votre copie après m'avoir demandé de vérifier vos résultats.

URL Sous-domaine Domaine Extension (fr com ...)
www.wikipedia.fr
fr.wikipedia.org
wikipedia.don.org
www.amazon.paiement.com

08° Un e-commerce vous propose de payer un magnifique achat en ligne sur www.paypal.paiement.securise.com. C'est sérieux ou pas cette histoire ? Vous payez ou pas ?

...CORRECTION...

www.paypal.paiement.securise.com

Si vous avez bien suivi, vous n'allez certainement pas être redirigé vers le site de paypal mais vers le site de quelqu'un qui possède le nom de domaine securise.com et qui y a placé un sous-domaine paiement puis encore un sous-domaine paypal puis un sous-domaine www. Bref, ce n'est pas le propriétaire de paypal.

09° Un e-commerce vous propose de payer un magnifique achat en ligne sur paiement.paypal.xyz. C'est sérieux ou pas cette histoire ? Vous payez ou pas ?

...CORRECTION...

paiement.paypal.xyz

Il s'agit d'un site dont le propriétaire a acheté le nom de domaine paypal.xyz. Comme il ne s'agit pas d'une extension très courante, méfiance...

C'est bien ça le problème d'ailleurs : si on veut être certain que personne ne peut se faire passer pour vous, il faut acheter toutes les associations nom.extension. Pour une société privée cela représente un investissement rentable puisque cela réduit le nombre d'escroqueries qui pourraient nuire à l'image de la marque.

Ici, espérons que les propriétaires légitimes de paypal aient achété tous les noms de domaines possibles.

2.3 Top Level Domain TLD

Les domaines du premier niveau (Top Level Domain) sont l'autre nom de l'extension. Chaque nom de domaine de premier niveau est géré par une société (ou une association) unique sous délégation de l'IANA (Internet Assigned Numbers Authority). Cette société connaît toutes les associations noms de domaine - adresse IP qui finissent par son extension.

Le TDL .fr est géré par l'AFNIC, l’Association française pour le nommage Internet en coopération.

Le site de l'IANA https://www.iana.org/domains/root/db répertorie les différents organismes qui gèrent les TLD sous délégation de l'IANA.

L'AFNIC a pour mission de gérer les domaines de premier niveau de la France (.fr), La Réunion (.re), des Terres australes et antarctiques françaises (.tf), Mayotte (.yt), Saint-Pierre-et-Miquelon (.pm) et Wallis-et-Futuna (.wf). L'Afnic se définit également comme fournisseur de solutions techniques et de services de registre, elle est notamment le partenaire technique de nouveaux domaines génériques dont le .paris, le .bzh, le .alsace, le .ovh.

Les TDL sont répartis en plusieurs grandes catégories :

  • Un domaine spécial arpa géré par l'IANA (qui gère les adresses IP). Ces adresses permettent de localiser les serveurs servant à gérer la résolution des adresses IP en nom de domaine (l'inverse du DSN donc).
  • Des domaines géographiques (même si rien n'oblige un serveur en fr à travailler sur le marché Français).
    • France fr
    • Belgique be
    • Allemagne de
    • Italie it
    • Espagne es
    • Luxembourg lu
    • Suisse ch
    • Union Européenne ue
  • Des domaines génériques, qui donnent une indication de la nature du site (mais comme pour la géographie, ça reste indicatif) :
  • Exemples de domaines sans contrainte d'enregistrement (si ce n'est financier)

    • com pour le commerce
    • net pour les sites liés aux réseaux et/ou à la télécommunication
    • org pour les sites des organisations à but non lucratif
    • info pour les sites liés à un service d'information

    Exemples de domaines avec contrainte d'enregistrement

    • mil pour les sites militaires
    • edu pour les sites liés aux institutions éducatives reconnues
    • gov pour les sites gouvernementaux

3 - DNS, hébergeurs et registaires

Cette notion est en réalité liée à Internet. Mais comme le Web en a besoin, autant la voir tout de suite.

Vous savez qu'un ordinateur est identifié par son adresse IP. Or, vous n'avez jamais placé d'adresses IP dans la barre d'adresses de votre navigateur pour localiser l'ordinateur se lequel se trouve le programme serveur que vous voulez joindre..

Comment votre machine parvient-elle alors à trouver l'adresse IP qu'il faut joindre ?

10° Utiliser le site suivant (ou un autre offrant le même service de DNS Record Lookupdnslookup.online/ ou www.whatsmyip.org/.

Formulaire où on peut rentrer le nom du site dont on veut trouver l'IP
Formulaire du premier site fourni ci-dessus

Lancer une demande sur un site de votre choix. Regarder si le site parvient à trouver l'adresse IP correspondante.

Voici la réponse que j'ai obtenu avec ce site sur une demande www.infoforall.fr.

Formulaire où on peut rentrer le nom du site dont on veut trouver l'IP
Réponse du site ci-dessous

On obtient ici une adresse IP v4 :  185.35.40.11 .

3. 1 DNS
DNS veut dire Domain Name System. C'est ce système qui permet au navigateur de traduire le nom de domaine d'une requête en adresse IP.
NomAdresse IP
www.infoforall.fr 185.35.40.11 

Par exemple, au moment où cette page a été écrite, www.infoforall.fr doit être transmise à l'adresse IP  185.35.40.11 .

Au tout début d'Internet, un seul fichier texte contenait les adresses IP de grands services à connaître.

Depuis, Internet a un peu grossi... et on ne peut plus faire comme cela.

Voyons comment cela fonctionne maintenant.

3.2 Fonctionnement des DNS

Explications :

Vous demandez une ressource située à cette adresse www.infoforall.fr


Etape 1 : Votre navigateur va commencer par voir s'il possède cette adresse en mémoire-cache.

Cache Chromium

Première connexion donc le cache du navigateur ne connaît pas votre site.


Etape 2 : on lance une requête DNS à notre serveur DNS par défaut.

Requête DNS

Pas de chance. Personne n'a démandé à accéder à www.infoforall.fr dernièrement. La mémoire-cache de ce serveur ne contient pas non plus l'adresse du site.


Etape 3 : le serveur DNS va alors lancer lui-même une requête DNS. A qui ? A l'un des serveurs racines d'Internet. Le serveur DNS du provider doit donc avoir son adresse en mémoire. Que lui demande-t-il ? Il lui demande de lui fournir l'adresse d'un serveur Top-Level-Domain gérant les adresses en .fr.

Requête DNS à la racine

On dit que les serveurs racines sont des serveurs d'autorité pour fournir les adresses des serveurs TLD.

Une fois que le serveur racine a répondu, notre serveur DNS connaît maintenant une adresse valide correspondant à un serveur gérant le domaine de premier niveau fr.


Etape 4 : le serveur DNS utilise l'adresse du serveur gérant le domaine fr pour lancer une requête DNS sur le domaine de deuxième niveau infoforall.

Requête DNS au serveur fd

Le serveur TDL fr est un serveur d'autorité pour fournir les adresses des serveurs de deuxième niveau des noms de domaine finissant en fr.

Une fois la réponse reçue, le serveur DNS du provider connaît l'adresse du serveur DNS gérant les adresses commençant par infoforall.fr.


Etape 5 : le serveur DNS utilise l'adresse du serveur gérant le domaine infoforall.fr pour lancer une requête DNS sur le sous-domaine www.

Requête DNS au serveur fd

Ce serveur fait autorité sur les adresses des serveurs répondant à un nom qui finit par infoforall.fr.

Une fois la réponse reçue, le serveur DNS connaît enfin l'adresse du serveur hébergeant www.infoforall.fr.


Etape 6 : Ouf. C'est presque fini. Il ne reste plus au serveur DNS du provider qu'à renvoyer la réponse DNS qu'il vient de recevoir au client originel.

Réponse DNS du serveur DNS

Etape 7 : On retrouve le fonctionnement habituel : le client va envoyer une requête HTTP vers le serveur HTTP de www.infoforall.fr maintenant qu'il connaît son adresse !

Requête HTTP vers le serveur HTTP

On voit donc que pour une pauvre requête HTTP, nous avons provoqué un trafic important. Et encore : la réponse HTTP fournie risque de comporter des images qui sont hébergées, elles, par doc.infoforall.fr...

11° Votre navigateur connaît maintenant l'adresse du serveur correspondant à www.infoforall.fr. Cela veut-il dire qu'il connaît l'adresse de doc.infoforall.fr ?

...CORRECTION...

Et non. Ce n'est pas le même nom. Il est possible que le serveur soit le même (même nom de domaine) ou pas...

12° Votre navigateur ne connaît pas doc.infoforall.fr. Décrire ce qui va se passer de façon à ce qu'il recoive cette adresse.

...CORRECTION...

Le navigateur va provoquer l'envoi d'une requête DNS au serveur DNS par défaut.

Ce serveur DNS va alors faire une requête DNS sur un serveur racine, puis un serveur TLD gérant fr puis sur un serveur gérant infoforall.fr.

Votre navigateur va donc recevoir une seconde adresse et pouvoir télécharger les images présentes sur la page en provoquant de nouvelles requêtes HTTP.

13° Tout ce processus de requêtes DNS va-t-il encore avoir lieu lorsque vous voudrez atteindre la page suivante sur ce site ?

...CORRECTION...

Non, tant que l'entrée de ce site reste dans le cache DNS de votre navigateur, il n'aura pas besoin de refaire une demande.

Vous savez désormais comme localiser un serveur HTTP précis et lui demander une ressource en passant par l'URL.

Dans l'activité suivante, nous allons voir comment utiliser ces URLs pour créer une page Web permettant d'en ouvrir d'autres.

Activité publiée le 16 09 2019
Dernière modification : 18 09 2023
Auteur : ows. h.