Quelles sont les parties d'une URL ?

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 travaillez avec des cookies, vous devez comprendre la différence entre le site et l'origine.

Les noms des parties de l'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 API URL 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 une variété de termes utilisés avec les chaînes d'URL HTTP ou HTTPS. Il ne couvre pas d'autres types d'URL, tels que les URL de fichiers ou de données. Pour des 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 d'essayer d'expliquer en détail.

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 l'ouvrir dans un nouvel onglet à l'adresse url-parts.glitch.me.


Les noms des parties de l'URL sont listés ci-dessous par ordre alphabétique.

Domaine national de premier niveau (ccTLD)

Domaine de premier niveau défini dans la liste des codes pays ISO 3166-1.

  • Pour https://example.org.au, le ccTLD est au.
  • Pour https://example.io, le ccTLD est io.

Nom de domaine

Parties d'une URL HTTP ou HTTPS séparées par des points: tout ce qui suit 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)

Une entrée de la liste des suffixes publics, y compris un TLD et(pour les TLD e avec plusieurs parties) des domaines supplémentaires en dessous : de deuxième niveau, de troisième niveau, etc.

  • Exemple: com, com.au, github.io, sa.edu.au, schools.nsw.edu.au.

Un "suffixe public", comme dans ces exemples, est un nom sous lequel des domaines peuvent être enregistrés. La liste des suffixes publics est une liste de tous les suffixes publics connus, qui est mise à jour fréquemment. Les navigateurs, y compris Chromium et Firefox, utilisent la liste dans leurs compilations.

eTLD+1

Voir domaine enregistrable.

Un eTLD, ainsi que le sous-domaine qui le précède.

  • 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 d'URL et ne faisant pas partie de l'API d'URL, mais couramment utilisé pour désigner la partie finale de l'URL, autre que le chemin d'accès, sur la base de l'hypothèse (souvent incorrecte) que l'URL est mappée directement sur une structure de répertoire.

Par exemple, avec https://example.com/dir/file.html, file.html peut être appelé 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 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#tabby a une valeur d'identifiant de fragment de tabby.

La partie incluant # 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, qui est mappé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 non par défaut est utilisé.

Croisillon (ou ancre)

Chaîne qui suit un caractère # à la fin d'une URL et qui fournit un identifiant de fragment (dans certains contextes, on parle d'une "ancre").

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 d'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 host dans la norme d'URL n'inclut pas le port.
  • URL.host inclut le port, sauf si le port est le port par défaut du schéma.
  • URL.hostname n'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 section 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 d'URL définit origin et renvoie à la norme HTML pour l'arrière-plan.

Pour les URL HTTP ou HTTPS, URL.origin renvoie le scheme, l'hôte et le port (sauf si le port est le port par défaut pour le scheme).

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 située après le domaine et le port (le cas échéant), y compris un filename (le cas échéant), mais à l'exclusion de la chaîne de recherche ou du 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 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 qui suit un : dans une URL et 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 HTTPS, il est 443. Une URL n'a pas besoin de spécifier le numéro de port, sauf si un port non par défaut est utilisé.

L'API renvoie une chaîne vide si le port est le port par défaut du 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 via l'API URL, mais pas scheme.

Requête (ou "chaîne de requête")

La partie recherche de l'URL, à l'exception du ? initial.

Domaine enregistrable

  • Pour une URL avec un eTLD à une seule partie tel que com ou org (c'est-à-dire un eTLD qui correspond à un TLD), le domaine et le domaine de deuxième niveau qui le précèdent: par exemple, example.com ou example.org.
  • Pour une URL avec un domaine de premier niveau en deux parties où seul l'enregistrement de troisième niveau est autorisé (c'est-à-dire les entrées de la liste des suffixes publics telles que com.au et github.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.au ou example.github.io.
  • Pour les domaines de premier niveau génériques comportant trois parties ou plus, le domaine de premier niveau générique 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 à une URL avec un schéma https doit être effectuée à l'aide du protocole HTTPS. Pour une requête vers une URL avec un schéma tel que file, mailto ou git qui ne correspond pas à un protocole réseau, le comportement dépend de l'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.

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

query ou "chaîne de requête" fait référence à search sans le ? initial.

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=tabby et mood=bonkers.

Domaine de deuxième niveau

Domaine qui précède un domaine de premier niveau.

  • Pour l'URL https://www.example.com, le domaine de deuxième niveau est example.com, un sous-domaine du domaine de premier niveau com.

  • Pour https://example.org.au, le domaine de premier niveau est au, le domaine de deuxième niveau est org et le domaine de troisième niveau est example. Dans cet exemple, org.au est un sous-domaine de au et example.org.au est un sous-domaine de org.au.

Site

Le site est défini par la norme HTML, ainsi que le même site, qui inclut le schéma et le même site sans schéma.

Le site n'est pas défini dans la norme d'URL ni dans l'API d'URL JavaScript.

Dans ce contexte:

  • Pour une URL HTTP ou HTTPS avec un eTLD à une seule partie, comme https://example.com, le site se compose de scheme, du TLD générique et du libellé qui le précède. Par exemple, pour l'URL https://www.example.com/cat, le site est https://example.com. (Pour cette URL, le domaine de premier niveau étendu est identique au domaine de premier niveau.)
  • Pour les eTLD multicomposants tels que co.uk, github.io ou sa.edu.au, le "site" se compose de scheme, de l'eTLD et du libellé qui le précède. Par exemple, pour l'URL https://cat.example.co.uk/tabby, le site est https://example.co.uk, et pour https://www.education.sa.gov.au, il est https://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 à origin, site n'inclut pas port.

Sous-domaine

Domaine appartenant à un domaine de niveau supérieur.

Pour les sites avec des domaines de premier niveau à une seule partie tels que com ou org, les parties situées avant le domaine de premier niveau, chacune étant séparée par un point.

  • www.example.com est un sous-domaine de example.com.
  • support.api.example.org est un sous-domaine de api.example.org, qui est un sous-domaine de example.org.

Pour les domaines de premier niveau en deux parties où seuls les enregistrements de troisième niveau sont autorisés(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 les précèdent.

  • Par exemple, cat.example.co.uk est un sous-domaine de example.co.uk.

Fragment de texte

Type de fragment qui permet de créer un lien vers une plage de texte et de la mettre en surbrillance sur une page. Lorsqu'un utilisateur suit un lien avec un fragment de texte, le navigateur tente de localiser, de faire défiler et de mettre en surbrillance le texte sur la page.

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 listé dans la base de données de la zone racine, tel que com ou org. Certains domaines de premier niveau sont des domaines de premier niveau associés à un code pays, tels que 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 point final.

  • Pour https://example.org, le domaine de premier niveau de l'URL est org.
  • Pour https://example.org.au, le domaine de premier niveau de l'URL est au, et org est un domaine de deuxième niveau (même si org est également un domaine de premier niveau). org.au est un eTLD à deux composants.

La liste des suffixes publics des eTLD inclut des domaines comportant une, deux ou plusieurs parties. Un TLD peut donc également être un TLD générique. Exemple :

  • Pour https://example.com, l'eTLD de l'URL est com, 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 pratique est obsolète 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 des symboles : ou @, ils doivent être encodés au format URL en %3A et %40, respectivement.


En savoir plus