Outils d'URL
Encodage ou décodage d'URL : quelle est la différence ?
Un guide réversible et sensible aux composants pour le codage et le décodage d'URL.
Par Vigneshwaran Vijayakumar, développeur et éditeur | | Révisé sous le Politique éditoriale de ClockTools
Table des matières
Le codage d'URL convertit les caractères dangereux ou significatifs dans un composant d'URL en triplets de pourcentage ; le décodage d'URL inverse les triplets valides en caractères lisibles. Encodez avant d'insérer des données brutes dans un composant. Décodez lorsque vous devez inspecter ou utiliser une valeur déjà codée. Les outils Encodeur d'URL ClockTools et Décodeur d'URL vous permettent de tester les deux sens sans modifier le texte original.
Choisissez la direction à partir de l'entrée
Si l'entrée est constituée de données lisibles par l'homme telles que summer shoes & bags, encodez-la avant de la placer dans une valeur de requête. Si l'entrée contient déjà des séquences telles que %20 et que vous avez besoin des caractères originaux, décodez-la une fois. La norme URL WHATWG définit des ensembles de codage en pourcentage pour l'analyse et la sérialisation des URL ; RFC3986 explique la forme du triplet de pourcentage et les caractères réservés.
| Vous avez | Vous avez besoin | Fonctionnement |
|---|---|---|
| Valeur brute de la requête | Composant sécurisé pour les URL | Encoder |
| Triplets de codage en pourcentage | Valeur lisible | Décoder |
| URL complète déjà analysée | Un champ modifié | Modifiez ce composant, puis sérialisez l'URL |
L'encodage n'est pas un cryptage. Cela rend la syntaxe sans ambiguïté ; il ne cache pas les informations sensibles.
Suivez un exemple réversible
Commencez par summer shoes & bags. L'encodage des composants produit summer%20shoes%20%26%20bags. Les espaces deviennent %20 et l'esperluette devient %26, il s'agit donc de données plutôt que d'un séparateur. Décoder ce résultat une seule fois rétablit la phrase originale.
Lors de la vérification en direct de ClockTools, un exemple de 74 caractères est passé à 102 caractères avec 14 séquences d'échappement en mode composant URI. Ces décomptes décrivent uniquement cet échantillon ; différentes entrées produisent des totaux différents.
Respecter les limites des composants d'URL
Une URL contient des éléments avec une syntaxe différente : schéma, hôte, chemin, requête et fragment. Le flux de travail le plus sûr consiste à analyser l'URL, à modifier la valeur souhaitée, puis à la sérialiser à l'aide de l'API de votre environnement. L'encodage d'une URL complète déjà assemblée peut transformer en séquences d'échappement des séparateurs tels que :, /, ? et & qui devaient conserver leur signification structurelle.
Le cas du caractère espace mérite une attention particulière. Le codage en pourcentage générique représente un espace sous la forme %20. La sérialisation des requêtes de type formulaire HTML peut utiliser + à la place. Lisez Encodage URL pour un espace pour ce problème d'interopérabilité restreint ; cet article traite du sens de fonctionnement, du choix des composants et de l'inversion.
Empêcher le double encodage
Le double encodage se produit lorsque le texte codé passe à nouveau via un encodeur. Par exemple, %20 peut devenir %2520 car % est codé sous la forme %25. Gardez une trace de l'état de chaque valeur, brute ou encodée, encodez à une seule frontière du traitement et décodez uniquement le nombre de fois prévu par le contrat de données. La RFC 3986 avertit que les chaînes codées en pourcentage ne doivent pas être codées ou décodées plus d'une fois sans raison claire.
Lors du débogage, copiez le plus petit composant dans l'outil, décodez une fois et comparez le résultat avec la valeur brute attendue. Ne collez jamais de secrets, de jetons ou d'URL privées dans un outil auquel vous ne faites pas confiance.
Questions fréquemment posées
Quelle est la différence entre l’encodage et le décodage d’URL ?
L'encodage transforme les caractères en une représentation sécurisée pour le transport ; le décodage inverse les triplets de pourcentage valides en caractères lisibles.
Dois-je encoder une URL complète ou seulement un composant ?
Encodez généralement la valeur ou le composant que vous insérez, et non une URL déjà assemblée avec des séparateurs significatifs.
Pourquoi une URL contient-elle parfois %2520 ?
Cela signifie généralement que %20 a été à nouveau codé : le signe de pourcentage est devenu %25, produisant une valeur doublement codée.
Un signe plus est-il toujours identique à un espace ?
Non. Certains analyseurs de requêtes codées par formulaire traitent + comme un espace, tandis que le codage en pourcentage d'URL générique utilise %20.

