À propos de cet outil
Qu'est-ce que l'encodage-pourcent ?
Une URL ne peut contenir qu'un jeu limité de caractères ASCII, et certains d'entre eux ont un rôle : ? ouvre la requête, & sépare les paramètres, # ouvre le fragment. Tout autre caractère, ainsi que tout caractère réservé employé comme simple donnée, s'écrit avec un signe pourcent suivi de deux chiffres hexadécimaux pour chacun de ses octets. Un espace devient %20, et é, qui occupe deux octets en UTF-8, devient %C3%A9. Les règles figurent dans la RFC 3986.
Le décodage fait l'inverse. Il échoue quand un signe pourcent n'est pas suivi de deux chiffres hexadécimaux, ou quand les octets échappés ne forment pas de l'UTF-8 valide ; l'outil indique alors la séquence en cause et sa position.
Quel mode choisir
Le mode Composant convient à un seul morceau d'URL : une valeur de requête, un segment de chemin, une URL de redirection passée en paramètre. Il échappe /, ?, & et =, pour que la valeur ne puisse pas être prise pour de la structure.
Le mode URL complète sert pour une adresse entière dont il suffit de corriger les espaces et les caractères non ASCII. Il laisse les caractères structurels intacts, ce qui veut aussi dire qu'il ne peut pas protéger une valeur qui en contient. Il échappe aussi %, si bien qu'une URL déjà encodée le serait deux fois, et il échappe les crochets qui entourent une adresse IPv6 dans l'hôte. Au décodage, ce mode laisse telles quelles les séquences d'échappement des caractères structurels, comme %2F et %26.
Le mode Formulaire correspond au format application/x-www-form-urlencoded qu'utilisent les navigateurs pour envoyer un formulaire HTML, dans la chaîne de requête ou dans le corps de la requête, et où un espace s'écrit +. Au décodage, un + n'est lu comme un espace que dans ce mode.
Comment l'URL est analysée
Quand l'entrée, ou à défaut la sortie, est une URL absolue, l'outil la lit avec le parseur URL du navigateur, celui-là même qui traite les liens et fetch. Le tableau indique le schéma, les identifiants, l'hôte, le port, le chemin et le fragment, ainsi que chaque paramètre de requête avec sa clé et sa valeur décodées. Le parseur normalise ce qu'il lit. Dans une URL web, par exemple, il met le schéma et l'hôte en minuscules, résout les segments . et .. du chemin et encode en pourcentage des caractères comme les espaces ; les éléments affichés peuvent donc différer légèrement de ce qui a été saisi. Un nom d'hôte internationalisé dans une URL http ou https s'affiche sous sa forme ASCII (Punycode), telle que le parseur l'enregistre.
Si l'URL n'indique pas de port et que l'outil connaît le port par défaut de son schéma, il affiche ce port par défaut, par exemple 443 pour https.