Anatomie d'une url

Auteur :
  • François Brucker

Notion d'url.

Une URL (Uniform Resource Locator) est un cas particulier d'URI.

Pour ce qui nous concernent, ces deux notions permettent de retrouver une ressource. La force d'une d'URI est son schéma, très souple qui s'adapte à de nombreuses situation

Définition

Un schéma d'URI est défini de la façon suivante :

<nom du schéma>://<domaine>/<chemin> [?<requête>] [#<fragment>]
  • le nom du schéma : protocole d'accès aux données
  • le domaine et le chemin permettent de retrouver la ressource
  • requête et domaines sont facultatifs :
    • la requête est constitué d'éléments clef=valeur séparé par des ;
    • le fragment est un mot

Dans le web on parle plutôt d'url qui sont une sous-classe des uri :

Définition

Une url (Uniform Resource Locator) est un moyen de retrouver n'importe quelle élément du web. Elle est composée de 3 parties :

<protocole>://<serveur>[:port]/<ressource>[ ? <requête> ] [#<lien>]

Ce qui donne pour l'url https://fr.wikipedia.org/wiki/Uniform_Resource_Locator :

Le boulot d'un navigateur pour une url protocole://serveur/ressource donnée est alors :

  1. de récupérer la ressource sur le serveur en utilisant le protocole protocole
  2. d'interpréter la ressource récupérée pour l'afficher (c'est souvent du html)

Protocole

Le protocole d'une url est le moyen d'accéder à une ressource. Dans le web, il y a essentiellement 3 protocoles d'utilisé :

Il est plus difficile de créer un serveur web supportant le https que celui supportant le http. C'est pourquoi vos serveur à vous seront quasi-exclusivement non sécurisé.

Serveur

Le serveur est l'adresse internet de l'ordinateur sur lequel la ressource est stockée. Cela peut être :

Une machine ne comprenant que les nombres, à chaque nom est associé une adresse IP grâce à un annuaire que l'on appelle DNS. A chaque adresse IP peut donc être associé un ou plusieurs noms.

Parmi toutes les adresses et les noms, il en existe deux qui signifient toujours la machine actuelle :

Il n'est pas nécessaire d'être accordé au réseau pour résoudre l'adresse localhost et 127.0.0.1. Elles sont souvent utilisées lorsque l'on crée ses propres serveur web

Ressource

La ressource est ensuite déterminée par le serveur et est envoyée au demandeur, c'est à dire le navigateur.

Dans le cadre d'une page web, cette ressource sera pourra être :

Port

Dans le schéma d'une url, la machine sur sur laquelle on va chercher la ressource est identifiée par deux composantes, le serveur et le port :

<protocole>://<serveur>[:port]

En effet, une machine sur internet peut avoir plusieurs utilisations. Pour séparer chacune de ses utilisation, on associe un un port à chacune d'elle : l'url est alors de la forme protocole://serveur:port/ressource).

Chaque protocole a cependant un port par défaut qui est utilisé s'il aucun port n'est précisé. Par exemple, le port par défaut du protocole https est le 443 et donc les urls https://www.google.fr et https://www.google.fr:443 sont identiques.

Essayez d'atteindre avec chrome les 2 urls : https://www.google.fr et https://www.google.fr:443. Que donne l'url https://www.google.fr:8080 ? A priori elle ne fonctionne pas car la roue tourne mais ne s'arrête pas.

Chaque machine possède $2^{16}$ ports dont certains sont utilisés par le système (de 1 à 1023) et ne doivent pas être utilisé par les utilisateurs, les autres sont libres d'être utilisés pour nos serveurs.

Liste des ports communément utilisés

Bien que libres certains ports sont usuellement utilisés par certains protocoles.