Des adresses pour le Web
URL = Uniform Resource Locator
- Introduits par Tim Berners-Lee en 1994 dans la RFC 1738,
- Identifient une ressource dans le Web, et le moyen d’y accéder et d’intéragir avec.
Anatomie d’une URL
https:///wiki/Uniform_Resource_Locator#Syntax
- Schéma : méthode d’accès (en général un protocole réseau) ;
- Autorité : les informations sur le serveur à contacter ;
- Chemin : l’identifiant de la ressource auprès du serveur ;
- Fragment : une sous-ressource à accéder.
Le schéma
Protocoles traités par le navigateur
http,https: protocole HTTP (Web),file: accéder un fichier local,ftp,gopher,shttp: autres protocoles réseau.
Protocoles délégués à une application externe
mailto: composer un mail (ex. :mailto:tim-berners-lee@example.com),callto,sip,sms: téléphonie,
Pseudo-protocoles
javascript: evaluateur JavaScript (ex. :javascript:alert('hello')>,data: inclusion de documents (ex. :data:text/plain;base64,SGVsbG8hCg==)about,chrome: configuration du navigateur,view-source: exploration du code source (ex. :view-source:)
Le chemin
Inspiré de la syntaxe des chemins dans les systèmes de fichiers UNIX.
https://www.dropbox.com/home/pictures/1985/10/26/doc.jpg
Représentation d’une arborescence :
- Racine :
/, origine de l’arborescence, - Niveau courant :
., - Remonter d’un niveau :
..,
Exemples
/home/pictures/./1985==/home/pictures/1985,/home/pictures/../music==/home/music
En pratique, le serveur web est libre d’interpréter le chemin comme bon il lui semble.
Le query string et le fragment
https://www.google.com/search?q=url&ie=utf-8#res
Le query string
- Défini dans la RFC 3986,
- Commence par
?, suite de pairesclef=valeurséparées par&, - Indique en général des paramètres associés à la ressource.
Le fragment
- Commence par
#, - Indique un sous-document (ex. sauter à une sous-section dans le navigateur),
- N’est pas transmis au serveur.
URLs complètes, absolues, relatives
http://example.com/home/profile?action=view#picture
Une URL peut être évaluée dans le contexte d’une autre URL (par ex., dans la navigation de liens) :
-
URLs complètes : commençant par le schema, le contexte est ignoré
https://google.com/search→https://google.com/search -
URLs relative au protocole : commençant par
//, uniquement le protocole est gardé//jquery.com/latest.js→http://jquery.com/latest.js -
URLs absolues : commençant par
/, récupère le schema et l’autorité du contexte/home/music→http://example.com/home/music -
URLs relatives : commençant par tout autre caractère, tout est gardé jusqu’au dernier
/du chemin../login→http://example.com/login
www.google.fr→http://example.com/home/www.google.fr -
URLs relatives (cas spéciaux) : commençant par
?ou#,?action=edit→http://example.com/home/profile?action=edit
#email→http://example.com/home/profile?action=view#email