layout | title | subtitle | addons | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
lesson |
URLs |
Uniform Resource Locators |
|
- 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.
https://en.wikipedia.org/wiki/Uniform_Resource_Locator#Syntax
{:.centered}
- 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. {:.incremental}
http
,https
: protocole HTTP (Web),file
: accéder un fichier local,ftp
,gopher
,shttp
: autres protocoles réseau.
mailto
: composer un mail (ex. :mailto:tim-berners-lee@example.com
),callto
,sip
,sms
: téléphonie,
javascript
: evaluateur JavaScript (ex. :javascript:alert('hello')
>,data
: inclusion de documents (ex. :data:text/plain;base64,SGVsbG8hCg==
{:title="Par mesure de sécurité ce lien n'est pas cliquable. Copiez-collez dans la barre d'adresse."})about
,chrome
: configuration du navigateur,view-source
: exploration du code source (ex. :view-source:
{:title="Par mesure de sécurité ce lien n'est pas cliquable. Copiez-collez dans la barre d'adresse."})
Inspiré de la syntaxe des chemins dans les systèmes de fichiers UNIX.
https://www.dropbox.com/home/pictures/1985/10/26/doc.jpg
{:.centered}
Représentation d'une arborescence :
- Racine :
/
, origine de l'arborescence, - Niveau courant :
.
, - Remonter d'un niveau :
..
,
/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.
https://www.google.com/search?q=url&ie=utf-8#res
{:.centered}
- Défini dans la RFC 3986,
- Commence par
?
, suite de pairesclef=valeur
séparées par&
, - Indique en général des paramètres associés à la ressource.
- Commence par
#
, - Indique un sous-document (ex. sauter à une sous-section dans le navigateur),
- N'est pas transmis au serveur.
http://example.com/home/profile?action=view#picture
{:.centered}
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
{:.centered} -
URLs relative au protocole : commençant par
//
, uniquement le protocole est gardé//jquery.com/latest.js
→http://jquery.com/latest.js
{:.centered} -
URLs absolues : commençant par
/
, récupère le schema et l'autorité du contexte/home/music
→http://example.com/home/music
{:.centered} -
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
{:.centered} -
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
{:.centered}