Une URL contient plus d'informations qu'il n'y paraît — protocole, hôte, port, chemin, requête, fragment. Comprendre chaque partie évite des erreurs fréquentes en développement web et en debug réseau.
Prenons https://exemple.fr:8443/chemin/page?id=42&tri=asc#section-2 — chaque segment a un rôle précis :
| Composant | Valeur | Rôle |
|---|---|---|
| Protocole | https | Définit le mode de communication (chiffré ou non, autre protocole comme ftp, ws...). |
| Hôte | exemple.fr | Le serveur à contacter, résolu via DNS en une adresse IP. |
| Port | 8443 | Le port TCP du service. Omis quand c'est le port par défaut (80 pour HTTP, 443 pour HTTPS). |
| Chemin | /chemin/page | La ressource demandée sur le serveur. |
| Requête | ?id=42&tri=asc | Paramètres clé=valeur envoyés au serveur, typiquement pour filtrer ou paramétrer la réponse. |
| Fragment | #section-2 | Ne quitte jamais le navigateur — sert à cibler une ancre dans la page ou un état d'application JS. |
Les paramètres de requête (query string) sont envoyés au serveur et apparaissent dans les logs d'accès, l'historique du navigateur, et parfois en cache — ils ne doivent donc jamais contenir d'information sensible (mot de passe, jeton de session) en clair.
Un même paramètre peut apparaître plusieurs fois dans une query string (?tag=a&tag=b) — le comportement (garder le premier, le dernier, ou les accumuler en liste) dépend entièrement du framework côté serveur qui la traite, pas d'une norme universelle.
Le fragment, aussi appelé ancre, n'est jamais envoyé au serveur — il est traité entièrement côté navigateur. Historiquement utilisé pour sauter à une section d'une page (#section-2), il sert aussi largement aujourd'hui aux applications JavaScript (routage côté client dans les SPA) pour représenter un état de l'interface sans recharger la page.
Certains caractères (espace, &, ?, accents...) doivent être encodés en pourcentage (percent-encoding) pour ne pas être interprétés comme des séparateurs de l'URL elle-même. Un espace devient %20 ou + dans une query string, un & littéral dans une valeur de paramètre devient %26, etc.
& ou un =, ce qui casse le découpage de la query string en clés/valeurs distinctes.Parce que le port par défaut du protocole est utilisé (80 pour HTTP, 443 pour HTTPS) — il est implicite et omis par convention.
Une URI (Uniform Resource Identifier) est le concept général d'identifiant de ressource ; une URL (Uniform Resource Locator) en est un sous-type qui précise aussi comment y accéder (le protocole). En pratique, les deux termes sont souvent utilisés indifféremment.
Pas de norme officielle universelle, mais la plupart des navigateurs et serveurs imposent une limite pratique autour de 2000 à 8000 caractères selon le logiciel — au-delà, mieux vaut passer les données en corps de requête (POST) plutôt qu'en query string.
Outils similaires