Analyseur d'URL / Inspecteur
Coller une ou plusieurs URLs complètes (une par ligne) pour les décoder en protocole, hôte, chemin, chaîne de requête et fragment, chaque paramètre de requête étant décodé.
Coller une ou plusieurs URLs complètes (une par ligne) pour les décoder en protocole, hôte, chemin, chaîne de requête et fragment, chaque paramètre de requête étant décodé.
Une URL ne peut contenir en toute sécurité que des lettres, des chiffres et un petit ensemble de symboles (- _ . ~). Tout le reste, y compris les espaces, la ponctuation, et les caractères non-anglais, doit être représenté avec le pourcentage-encodage avant qu'il puisse voyager dans une URL.
L'encodage en pourcentage remplace un personnage par un signe en pourcentage suivi de sa valeur d'octet hexadécimal à deux chiffres, en utilisant UTF-8 pour tout ce qui est en dehors de l'ASCII de base. Un espace devient %20, un ampersand devient %26, et un caractère accentué ou non-latin peut devenir plusieurs séquences %XX dans une rangée, puisque UTF-8 le représente comme plus d'un octet.
Des caractères tels que ? & = # et / ont une signification particulière dans une structure URL : ils marquent la chaîne de requête, séparent les paramètres ou introduisent le fragment. Si vos données doivent contenir un de ces caractères comme valeur plutôt que comme structure, encodez-le d'abord, ou le navigateur ou le serveur peut mal lire où une partie de l'URL se termine et le suivant commence.
Le décodage inverse le processus : il lit chaque séquence %XX de nouveau dans le caractère (ou octet) qu'il représente, ce qui est exactement ce que fait l'outil ci-dessus.
| Caractère | Encodé | Où il est utilisé |
|---|---|---|
| espace | %20 | Séparateur de mots dans une valeur |
| ! | %21 | |
| " | %22 | |
| # | %23 | Démarre le fragment |
| % | %25 | Démarre une séquence codée en pourcentage |
| & | %26 | Sépare les paramètres de la requête |
| ' | %27 | |
| ( | %28 | |
| ) | %29 | |
| + | %2B | Souvent lu comme un espace dans une chaîne de requête |
| , | %2C | |
| / | %2F | Sépare les segments de chemin |
| : | %3A | Suivre le schéma, par exemple https: |
| ; | %3B | |
| = | %3D | Assigne la valeur d'un paramètre de requête |
| ? | %3F | Démarre la chaîne de requête |
| @ | %40 | |
| [ | %5B | |
| ] | %5D |
Un élève copie une adresse web depuis un formulaire en ligne et tombe sur une suite de caractères comme science%20project%20notes. Un développeur débutant inspecte une requête API et découvre qu'une esperluette placée dans un terme de recherche apparaît sous la forme %26. L'adresse fonctionne, mais elle est difficile à lire et à déboguer.
Un outil de décodage d'URL reconvertit les séquences précédées d'un signe pour cent en caractères correspondants. Par exemple, %20 redonne habituellement une espace, tandis que %26 redonne une esperluette.
Le décodage sert à comprendre un lien, à inspecter les paramètres d'une requête, à étudier l'encodage employé sur le web et à diagnostiquer une requête mal formée. Il demande de la prudence, car les caractères réservés peuvent modifier la structure d'une URL une fois décodés.
L'outil ne dit pas si une destination est sûre, correcte ou autorisée. Il ne change que la représentation des caractères encodés. Élèves et développeurs doivent toujours examiner l'hôte, le chemin, les paramètres et les valeurs décodées.
Les URL se servent de certains caractères pour séparer leurs parties. Un point d'interrogation peut ouvrir une chaîne de requête, une esperluette peut séparer deux paramètres et un dièse peut annoncer un fragment.
Lorsque l'un de ces caractères doit figurer comme donnée et non comme séparateur de structure, il peut être encodé avec un signe pour cent. Ce signe est suivi de deux chiffres hexadécimaux qui représentent la valeur d'un octet.
| Valeur encodée | Caractère décodé | Sens habituel |
|---|---|---|
%20 |
Espace | Sépare les mots à l'intérieur d'une valeur |
%21 |
! |
Point d'exclamation |
%23 |
# |
Dièse ou marqueur de fragment |
%26 |
& |
Esperluette ou séparateur de requête |
%2B |
+ |
Signe plus |
%2F |
/ |
Barre oblique ou séparateur de chemin |
%3A |
: |
Deux-points |
%3D |
= |
Signe égal ou séparateur de paramètre |
%3F |
? |
Point d'interrogation ou début de requête |
Dans les séquences pour cent, les lettres hexadécimales ne distinguent pas majuscules et minuscules : %2F et %2f représentent donc le même octet.
Prenez cet exemple :
https://example.edu/search?q=water%20cycle&level=grade%206#results
Ses parties principales sont :
httpsexample.edu/searchq=water%20cycle&level=grade%206resultsLes valeurs de la requête se décodent en « water cycle » et « grade 6 ». L'esperluette structurelle placée entre les paramètres ne doit pas être confondue avec une esperluette encodée à l'intérieur d'une valeur.
Les développeurs se créent souvent des ennuis en décodant une URL entière alors qu'un seul composant devait l'être. Selon l'endroit où ils apparaissent, les caractères réservés peuvent jouer des rôles différents.
Imaginons une requête qui contient :
?topic=research%26writing
La valeur encodée représente :
research&writing
L'esperluette appartient à la valeur du paramètre. Si l'on décode la requête entière puis qu'on l'analyse mal, cette esperluette risque d'être prise pour un séparateur annonçant un autre paramètre.
Une application fiable analyse l'URL selon sa structure et décode chaque composant avec une API d'URL appropriée, au lieu de recourir à des remplacements de texte improvisés.
Les élèves examinent :
https://example.edu/library?topic=space%20science
Ils repèrent l'hôte, le chemin, le nom du paramètre et la valeur encodée.
La valeur space%20science devient space science. Les élèves expliquent pourquoi on n'écrit pas d'ordinaire une véritable espace dans une URL destinée à être partagée.
L'enseignant propose :
?title=Design%20%26%20Technology
Le titre décodé est Design & Technology. Les élèves constatent que l'esperluette encodée fait partie du titre au lieu de séparer des paramètres.
Les élèves se servent de l'outil d'encodage d'URL pour préparer une nouvelle valeur, puis la décodent et comparent le résultat.
Une séquence contient un échappement pour cent incomplet, par exemple %2. Les élèves expliquent pourquoi deux chiffres hexadécimaux sont attendus après le signe pour cent.
Un élève copie le lien d'une recherche faite dans un catalogue de bibliothèque, qui contient plusieurs mots encodés. L'URL telle qu'elle s'affiche est difficile à interpréter.
L'élève décode les valeurs de la requête et confirme quels termes et quels filtres avaient été retenus. L'hôte est contrôlé avant l'ouverture du lien.
Cela lui fait comprendre comment un site transporte des informations de recherche d'une page à l'autre.
Un développeur débutant envoie une requête contenant un intitulé de cours avec une esperluette. Le serveur reçoit cet intitulé comme deux paramètres distincts.
Il inspecte la requête brute et découvre que l'esperluette n'avait pas été encodée comme donnée. La valeur est reconstruite avec une API d'URL standard, puis testée de nouveau.
Le décodeur aide à comprendre la requête, mais la correction durable passe par une gestion structurée des URL plutôt que par un remplacement manuel.
Une enseignante reçoit le lien d'un document de classe, mais la destination répond que le fichier est introuvable.
L'URL est examinée puis décodée. Un nom de fichier contient une barre oblique qui a peut-être été lue comme un séparateur de chemin, ou bien une espace a été mal copiée.
L'enseignante demande un nouveau lien de partage à la personne qui détient le document, au lieu de modifier à l'aveugle une adresse privée qu'elle ne connaît pas.
Les élèves créent un formulaire de recherche simple et observent l'URL après avoir envoyé un texte contenant des espaces et de la ponctuation.
Ils décodent les valeurs des paramètres et les comparent à ce qu'ils avaient saisi. La classe discute des raisons pour lesquelles les navigateurs encodent les valeurs avant de les placer dans une URL.
Aucun mot de passe réel, aucun dossier d'élève et aucune réponse privée ne servent à l'exercice.
Le lien d'une lettre d'information scolaire contient plusieurs paramètres de suivi. Une enseignante veut savoir quelles informations il transporte avant de le partager.
L'URL est découpée en paramètres et leurs valeurs sont décodées. Les valeurs de suivi inutiles ne peuvent être retirées que si cela ne casse pas la destination voulue.
Le lien final est testé, et non supposé fonctionner après une retouche manuelle.
Une classe d'informatique essaie une courte expression non anglaise dans une URL. Le résultat encodé contient plusieurs séquences pour cent, parce que les caractères UTF-8 peuvent occuper plusieurs octets.
Les élèves décodent la séquence complète et la comparent à l'expression d'origine. Retirer un seul octet encodé peut produire un caractère de remplacement ou un texte invalide.
L'activité démontre qu'un caractère visible ne correspond pas toujours à un seul octet encodé.
Un développeur attend une espace et voit %2520. La séquence %25 représente le signe pour cent : un premier passage de décodage donne donc %20, et un second peut donner une espace.
Il remonte jusqu'à l'endroit où la valeur a été encodée deux fois. Le cheminement des données est corrigé, au lieu de décoder sans fin chaque entrée.
Un lien contient une autre URL encodée dans un paramètre tel que redirect ou next.
Le destinataire décode cette valeur comme du texte brut et vérifie quel est l'hôte réellement visé avant de l'ouvrir. Une adresse encodée ne mérite pas la confiance au seul motif que sa destination finale est difficile à lire.
| Entrée | Encodage probable | Outil adapté | Exemple décodé |
|---|---|---|---|
lesson%20notes |
Encodage pour cent des URL | Décodage d'URL | lesson notes |
<p> |
Entités HTML | Décodage HTML | <p> |
SGVsbG8= |
Base64 | Décodage Base64 | Hello |
u003F |
Échappement Unicode | Un analyseur JSON ou propre au langage | ? |
Servez-vous de l'outil de décodage HTML pour les références d'entités, et de l'outil de décodage Base64 uniquement lorsque vous savez que les données emploient ce format.
Une espace se représente couramment par %20. Dans l'encodage de requête propre aux formulaires, un signe plus peut aussi être lu comme une espace.
D'où une distinction importante :
class%20notes se décode habituellement en class notes.class+notes peut se décoder en class notes dans le contexte d'une requête de formulaire.%2B.Employez la méthode de décodage prévue pour ce composant et ce format. Un décodeur de chemin et un décodeur de requête de formulaire ne traitent pas forcément le signe plus de la même façon.
L'encodage pour cent travaille sur des octets. Un caractère situé hors de l'ASCII de base peut être représenté par plusieurs octets encodés.
Une lettre accentuée ou un caractère arabe, par exemple, peut apparaître comme une suite de plusieurs échappements pour cent. Tous les octets nécessaires doivent rester dans l'ordre et être interprétés avec le bon encodage de caractères.
Si le résultat contient des symboles de remplacement, vérifiez si :
Après décodage, les caractères réservés peuvent modifier la structure. Découpez l'URL en composants et ne décodez que la valeur visée.
Un décodage répété peut transformer des données jusque-là inoffensives en séparateurs actifs ou en chemins inattendus. Cherchez pourquoi plusieurs couches d'encodage existent.
Remplacer %20 par une espace ne couvre pas tous les caractères encodés, ni les séquences UTF-8, ni les entrées mal formées, ni les règles sur le signe plus. Dans le code, employez un analyseur d'URL structuré ou une API standard.
Décodez-la d'abord comme du texte. Examinez le schéma, le nom d'hôte, le chemin et les paramètres avant de décider de la visiter.
%26 et & peuvent tous deux représenter une esperluette, dans des contextes différents. Choisissez le décodeur d'après la représentation réelle.
Un signe pour cent doit être suivi de deux chiffres hexadécimaux. Une séquence incomplète ou invalide peut signaler des données abîmées.
Les URL peuvent se retrouver dans l'historique du navigateur, les journaux, les statistiques, les captures d'écran et les messages partagés. Les identifiants sensibles n'ont pas leur place dans une chaîne de requête.
Les valeurs décodées peuvent contenir des caractères au sens particulier. Une barre oblique décodée peut agir sur un chemin, une esperluette peut altérer des paramètres, et des chevrons peuvent devenir du balisage s'ils sont mal insérés dans une page web.
Les applications devraient :
Décoder n'est pas assainir. Le décodage révèle quels caractères étaient représentés, mais il ne décide pas s'ils sont sûrs pour du HTML, un chemin de fichier, une requête de base de données ou une redirection.
Une URL peut contenir des termes de recherche, des identifiants de documents, des adresses électroniques, des codes de classe, des noms de fichiers, des données de suivi et bien d'autres informations. Le décodage rend tout cela plus lisible, mais ne le supprime pas.
Ne collez pas dans un outil externe des liens scolaires privés, des jetons de réinitialisation, des URL signées, des adresses menant à des dossiers d'élèves ou des données d'authentification. Pendant les leçons et les démonstrations, remplacez les valeurs sensibles par des exemples fictifs.
Avant de partager la capture d'écran d'une URL décodée, retirez les noms de comptes, les hôtes privés, les jetons et les identifiants de documents.
Les développeurs débutants devraient privilégier les API d'URL dédiées. En JavaScript, la valeur d'un paramètre se lit ainsi :
const url = new URL(
"https://example.edu/search?q=water%20cycle"
);
const query = url.searchParams.get("q");
console.log(query);
// water cycle
Cette approche analyse l'URL et renvoie la valeur du paramètre déjà décodée. Elle est en général plus sûre et plus claire que de découper soi-même la chaîne entière à chaque point d'interrogation, esperluette et signe égal.
Servez-vous de l'outil d'encodage d'URL pour préparer un texte destiné à un composant d'URL, puis décodez-le afin de vérifier un exemple de classe.
Si l'entrée contient des entités comme &lt; ou &quot;, utilisez l'outil de décodage HTML. Pour un texte dont vous savez qu'il est en Base64, utilisez l'outil de décodage Base64.
Choisir le bon décodeur évite des transformations inutiles et rend le débogage plus fiable.
Le décodage d'URL transforme des séquences pour cent en caractères lisibles. Il aide les élèves à comprendre les adresses web et aide les développeurs à inspecter des valeurs de requête, des requêtes API, du texte multilingue, des redirections et des problèmes de double encodage.
La méthode la plus sûre consiste à identifier le composant d'URL, à ne décoder que le nécessaire et à conserver le texte de départ. Traitez le résultat comme une donnée qui demande encore à être validée.
Un lien décodé est plus facile à examiner, mais il n'en devient pas automatiquement sûr ni correct. Vérifiez sa structure, sa destination, ses paramètres, ce qu'il révèle et l'encodage de caractères attendu avant de l'utiliser.