La plupart du temps, vous pouvez dire des choses comme "J'ai acheté un domaine" ou "Nos images sont hébergées sur un autre site", même si ce n'est pas tout à fait vrai. Toutefois, dans certains contextes, il est nécessaire d'être plus précis. Par exemple, lorsque vous traitez des cookies, vous devez comprendre la différence entre site et origine.
Les noms des composants d'URL sont spécifiés dans une norme qui définit également une API JavaScript :
- La norme URL définit les URL et les concepts associés pour permettre aux ingénieurs de créer des navigateurs Web interopérables.
- Le composant URL API de la norme définit des méthodes permettant d'accéder à des parties d'une chaîne d'URL, telles que le schéma ou l'origine.
Ce document explique différents termes utilisés avec les chaînes d'URL HTTP ou HTTPS. Il ne couvre pas les autres types d'URL, tels que les URL de fichiers ou de données. Pour les termes tels que host et origin, les définitions précises sont intrinsèquement complexes. Ce document fournit donc des exemples et des liens vers la norme URL, plutôt que de tenter de fournir des explications complètes.
Vous pouvez utiliser JavaScript pour obtenir les noms des composants d'URL définis par l'API URL. Exemple :
let url = new URL('https://foo.com.au:1234/bar/foo.html#bar');
console.log(url);
Analyseur d'URL
Modifiez l'URL ci-dessous pour voir comment les parties de la chaîne d'URL sont nommées. Vous pouvez également ouvrir cette page dans un onglet distinct à l'adresse https://chrome.dev/url-parts/.
Les noms des composants d'URL sont listés par ordre alphabétique ci-dessous.
Domaine national de premier niveau (ccTLD)
Un domaine de premier niveau défini dans la liste des codes pays ISO 3166-1.
Nom de domaine
Parties d'une URL HTTP ou HTTPS séparées par des points : tout ce qui se trouve après le schéma, mais avant le chemin d'accès ou le port (le cas échéant). Chaque partie du nom de domaine est appelée libellé.
| URL | Nom de domaine |
|---|---|
| https://example.github.io/path | example.github.io |
| https://support.example.org.au:443 | support.example.org.au |
Domaine de premier niveau effectif (eTLD)
Entrée de la liste des suffixes publics, y compris un TLD et (pour les eTLD comportant plusieurs parties) des domaines supplémentaires en dessous : deuxième niveau, troisième niveau, etc.
- Par exemple :
com,com.au,github.io,sa.edu.au,schools.nsw.edu.au.
Un "suffixe public", comme dans les exemples ci-dessus, est un nom sous lequel des domaines peuvent être enregistrés. La liste de suffixes publics est une liste de tous les suffixes publics connus. Elle est mise à jour fréquemment. Les navigateurs, y compris Chromium et Firefox, utilisent la liste dans leurs versions.
eTLD+1
Consultez Domaine enregistrable.
Un eTLD plus le sous-domaine qui le précède.
- Par exemple :
example.com,example.org.au,example.github.io,example.sa.edu.au,example.schools.nsw.edu.au.
Nom de fichier
Non défini dans la norme URL et ne faisant pas partie de l'API URL, mais couramment utilisé pour désigner la partie finale de l'URL, sans le chemin d'accès, en se basant sur l'hypothèse souvent incorrecte que l'URL correspond directement à une structure de répertoire.
Par exemple, avec https://example.com/dir/file.html, file.html peut être considéré comme le nom de fichier.
La valeur du nom de fichier est également utilisée par les navigateurs pour nommer un composant s'il est téléchargé.
Par exemple, https://example.com/images/image.jpg est généralement enregistré localement dans image.jpg.
Fragment
Chaîne de caractères qui suit un caractère # à la fin d'une URL et qui fournit un identifiant de fragment.
- Par exemple, l'URL
https://example.com/cats#tabbya une valeur d'identifiant de fragment detabby.
La partie incluant le # est appelée hachage ou ancre.
Vous pouvez également créer un lien vers un fragment de texte et le mettre en surbrillance.
Le hachage est renvoyé par l'API URL plutôt que par le fragment.
Nom de domaine complet
Adresse complète d'un site Web ou d'un serveur, associée à une adresse IP.
| URL | Nom de domaine complet |
|---|---|
| https://example.com:1234/cats | example.com |
| https://api.example.github.io | api.example.github.io |
Le nom de domaine complet d'une URL n'inclut pas le port, même si un port autre que celui par défaut est utilisé.
Hachage (ou ancre)
Chaîne de caractères qui suit un caractère # à la fin d'une URL et qui fournit un identifiant de fragment. (Dans certains contextes, on parle d'"ancrage".)
La partie excluant # est appelée fragment.
Vous pouvez également créer un lien vers un fragment de texte et le mettre en surbrillance.
Le hachage est renvoyé par l'API URL plutôt que par le fragment.
Hôte
Comme défini dans la norme URL, un hôte peut être un nom de domaine, une adresse IPv4, une adresse IPv6, un hôte opaque ou un hôte vide.
- La définition de
hostdans la norme URL n'inclut pas le port. URL.hostinclut le port, sauf s'il s'agit du port par défaut du schéma.URL.hostnamen'inclut pas le port.
| URL | URL.host |
|---|---|
| https://www.example.com:443/cat |
www.example.com// 443 is the default port for the scheme
|
| https://www.example.com:1234/cat | www.example.com:1234 |
| https://cat.example.github.io | cat.example.github.io |
Nom d'hôte
Le nom d'hôte est défini par l'API JavaScript URL, mais pas ailleurs par la norme URL. Pour en savoir plus, consultez la représentation de l'hôte.
URL.hostname renvoie l'hôte sans le port.
| URL | URL.hostname |
|---|---|
| https://www.example.com:443/cat | www.example.com |
| https://www.example.com:1234/cat | www.example.com |
| https://cat.example.github.io | cat.example.github.io |
Origine
La norme URL définit origin et renvoie à la norme HTML pour le contexte.
Pour les URL HTTP ou HTTPS, URL.origin renvoie le schéma, l'hôte et le port (sauf si le port est celui par défaut pour le schéma).
| URL | URL.origin |
|---|---|
| https://www.example.com:443/cat | https://www.example.com |
| https://www.example.com:1234/cat | https://www.example.com:1234 |
| https://cat.example.github.io | https://cat.example.github.io |
Paramètre
Consultez Paramètres de recherche.
Mot de passe
Voir Nom d'utilisateur.
Nom du chemin
Pour une URL HTTP ou HTTPS, la partie après le domaine et le port (si défini), y compris un filename (si défini), mais sans inclure la chaîne de recherche ni le hachage.
| URL | URL.pathname |
|---|---|
| https://example.com | [empty string] |
| https://example.com:8000/search?q=tabby | /search |
| https://example.github.io/cat/pattern#tabby | /cat/pattern |
| https://example.github.io/README.md | /README.md |
Le terme "chemin d'accès" est parfois utilisé pour désigner le nom de chemin d'accès sans le nom de fichier. Par exemple, pour l'URL https://example.com/cat/pattern/tabby.html, le "chemin d'accès" est /cat/pattern.
Port
Nombre après un : dans une URL qui identifie un port réseau. Par exemple, pour l'URL https://example.com:1234/tabby, le numéro de port est 1234.
Le numéro de port doit être un entier non signé de 16 bits, c'est-à-dire un entier compris entre 0 et 65 535 (inclus).
Pour une URL HTTP, le port par défaut est 80. Pour une URL HTTPS, il est 443. Une URL n'a pas besoin de spécifier le numéro de port, sauf si un port non défini par défaut est utilisé.
L'API renvoie une chaîne vide si le port est celui par défaut pour le schéma.
| URL | URL.port |
|---|---|
| https://example.com | // empty string |
| https://example.com:443/foo | // empty string: port is default for scheme |
| https://www.example.com:1234/foo | 1234 |
Protocole
Le schéma suivi de : (par exemple, http: ou https:).
protocol est disponible dans l'API URL, mais pas scheme.
Requête (ou "chaîne de requête")
La partie search de l'URL, sans le ? au début.
Domaine pouvant être enregistré
- Pour une URL avec un eTLD en une seule partie, comme
comouorg(c'est-à-dire un eTLD qui correspond à un TLD), le domaine et le domaine de deuxième niveau qui le précède : par exemple,example.comouexample.org. - Pour une URL avec un eTLD en deux parties où seule l'enregistrement de troisième niveau est autorisé (c'est-à-dire les entrées de la liste des suffixes publics telles que
com.auetgithub.io), le domaine de premier niveau en deux parties ("suffixe public") et le nom de domaine de troisième niveau juste avant. Par exemple :example.org.auouexample.github.io. - Pour les eTLD comportant trois parties ou plus, le eTLD et le domaine qui le précède.
Scheme
Partie de l'URL (avant ://) qui définit le protocole réseau (ou l'action à effectuer par l'agent utilisateur) lorsqu'une requête est envoyée à une URL. Par exemple, une requête envoyée à une URL avec un schéma https doit être effectuée à l'aide du protocole HTTPS. Pour une requête envoyée à une URL avec un schéma tel que file, mailto ou git qui ne correspond pas à un protocole réseau, le comportement dépend du user-agent. Par exemple, lorsqu'un utilisateur clique sur un lien mailto, la plupart des navigateurs ouvrent leur application de messagerie par défaut en utilisant les valeurs de l'URL href du lien.
Rechercher
Un point d'interrogation suivi d'une série de paires clé/valeur représentant les paramètres et leurs valeurs, fournies après le pathname.
| URL | URL.search |
|---|---|
| https://example.com/cats?pattern=tabby&mood=bonkers | ?pattern=tabby&mood=bonkers |
| https://example.com/cats:443?pattern=tabby | ?pattern=tabby |
La query ou "chaîne de requête" fait référence à search sans le ? de début.
Consultez également Paramètres de recherche.
Paramètres de recherche
Fait référence à un élément de données transmis dans une chaîne de recherche (ou "chaîne de requête").
- Par exemple, pour
https://example.com/cats?pattern=tabby&mood=bonkers, la chaîne de recherche comporte deux paramètres :pattern=tabbyetmood=bonkers.
Domaine de deuxième niveau
Domaine précédant un domaine de premier niveau.
Pour l'URL
https://www.example.com, le domaine de deuxième niveau estexample.com, un sous-domaine du domaine de premier niveaucom.Pour
https://example.org.au, le domaine de premier niveau estau, le domaine de deuxième niveau estorget le domaine de troisième niveau estexample. Dans cet exemple,org.auest un sous-domaine deauetexample.org.auest un sous-domaine deorg.au.
Site
Le site est défini par la norme HTML, ainsi que same-site, qui inclut le schéma et same-site sans schéma.
Le site n'est pas défini dans la norme URL ni dans l'API URL JavaScript.
Dans ce contexte :
- Pour une URL HTTP ou HTTPS avec un eTLD en une seule partie, comme
https://example.com, le site se compose descheme, de l'eTLD et du libellé qui le précède. Par exemple, pour l'URLhttps://www.example.com/cat, le site esthttps://example.com. (Pour cette URL, l'eTLD est identique au domaine de premier niveau.) - Pour les eTLD en plusieurs parties, comme
co.uk,github.ioousa.edu.au, le "site" se compose descheme, de l'eTLD et du libellé qui le précède. Par exemple, pour l'URLhttps://cat.example.co.uk/tabby, le site esthttps://example.co.uk, et pourhttps://www.education.sa.gov.au, le site esthttps://education.sa.gov.au.
| URL | Site (avec schéma et eTLD+1) |
|---|---|
| https://cat.example.com/tabby | ("https", "example.com") |
| https://cat.example.co.uk/tabby | ("https", "example.co.uk") |
Contrairement à origine, site n'inclut pas port.
Sous-domaine
Domaine appartenant à un domaine de niveau supérieur.
Pour les sites avec des domaines de premier niveau en une seule partie, comme com ou org, les parties avant le domaine de premier niveau, chacune séparée par un point.
www.example.comest un sous-domaine deexample.com.support.api.example.orgest un sous-domaine deapi.example.org, qui est lui-même un sous-domaine deexample.org.
Pour les TLD étendus en deux parties où seules les inscriptions de troisième niveau sont autorisées(c'est-à-dire les entrées de la liste des suffixes publics telles que co.uk et github.io), les sous-domaines sont les parties du nom de domaine qui précèdent.
- Par exemple,
cat.example.co.ukest un sous-domaine deexample.co.uk.
Fragment de texte
Type de fragment permettant de créer un lien vers une plage de texte sur une page et de la mettre en surbrillance. Lorsqu'un utilisateur suit un lien avec un fragment de texte, le navigateur tente de localiser le texte sur la page, de faire défiler la page jusqu'à ce texte et de le mettre en surbrillance.
Un fragment de texte commence par :~:text=, suivi du terme de recherche.
Par exemple, pour créer un lien vers la première occurrence du texte "fragment" sur cette page, utilisez l'URL https://web.dev/articles/url-parts#:~:text=fragment.
Pour en savoir plus, consultez Fragments de texte.
Domaine de premier niveau (TLD)
Nom de domaine figurant dans la base de données de la zone racine, tel que com ou org. Certains domaines de premier niveau sont des domaines nationaux de premier niveau, comme uk et tv.
Lorsque vous décrivez les parties d'une URL HTTP ou HTTPS, le TLD est le nom de domaine qui suit le dernier point.
- Pour
https://example.org, le domaine de premier niveau de l'URL estorg. - Pour
https://example.org.au, le domaine de premier niveau de l'URL estau, etorgest un domaine de deuxième niveau (même siorgest également un domaine de premier niveau).org.auest un eTLD en deux parties.
La liste des suffixes publics des eTLD inclut les domaines comportant une, deux ou plusieurs parties. Un TLD peut donc également être un eTLD. Exemple :
- Pour
https://example.com, le TLD de l'URL estcom, qui est également un TLD.
Nom d'utilisateur
Un nom d'utilisateur et un mot de passe facultatifs peuvent être fournis au début de l'URL, mais cette méthode a été abandonnée pour des raisons de sécurité et sera ignorée dans de nombreux cas.
Par exemple, avec https://user123:password1@example.com, le nom d'utilisateur est user123. Notez que le nom d'utilisateur (et le mot de passe) sont en texte brut et non chiffrés.
Si le nom d'utilisateur contient les symboles : ou @, ils doivent être encodés au format URL en %3A et %40, respectivement.
En savoir plus
- WHATWG : URL Living Standard
- WHATWG : norme HTML Living Standard
- URL de l'API
- Comprendre les termes "même site" et "même origine"
- RFC : URL (Uniform Resource Locators)
- RFC : URI, URL et URN
- Base de données de la zone racine (annuaire des TLD)
- Liste de suffixes publics (annuaire des eTLDs) : "Un suffixe public est un ensemble de noms DNS ou de caractères génériques concaténés avec des points. Il représente la partie d'un nom de domaine qui n'est pas sous le contrôle du titulaire individuel.")
- Glossaire de l'ICANN
- Qu'est-ce qu'un nom de domaine complet ?
- De combien de façons pouvez-vous découper une URL et nommer les différentes parties ?
- Glossaire MDN Web Docs
- Qu'est-ce qu'une URL ?
- Historique de l'URL