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 voit apparaître un texte tel que science%20project%20notes. Un développeur débutant examine une requête API et constate qu'une esperluette présente dans une valeur de recherche apparaît sous la forme %26. Le lien fonctionne, mais il est difficile à lire et à déboguer.
Un outil de décodage d'URL reconvertit les séquences encodées en pourcentage en leurs caractères correspondants. Par exemple, %20 devient généralement une espace, tandis que %26 devient une esperluette.
Le décodage est utile pour comprendre des liens, examiner des paramètres de requête, étudier l'encodage web et diagnostiquer des requêtes mal formées. Il doit être effectué avec précaution, car les caractères réservés peuvent modifier la structure d'une URL une fois décodés.
Cet outil ne permet pas de déterminer si une destination est sûre, correcte ou autorisée. Il se contente de modifier la représentation des caractères encodés. Les élèves et développeurs doivent toujours examiner eux-mêmes l'hôte, le chemin, les paramètres et les valeurs décodées.
Les URL utilisent certains caractères pour séparer leurs différentes parties. Un point d'interrogation peut introduire une chaîne de requête, une esperluette peut séparer des paramètres, et un dièse peut identifier un fragment.
Lorsqu'un de ces caractères doit apparaître comme donnée plutôt que comme séparateur structurel, il peut être encodé en pourcentage. Un signe pourcentage est suivi de deux chiffres hexadécimaux représentant une valeur d'octet.
| Valeur encodée | Caractère décodé | Signification courante |
|---|---|---|
%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 marqueur de requête |
Les lettres hexadécimales des séquences en pourcentage ne sont pas sensibles à la casse : %2F et %2f représentent donc le même octet.
Prenons cet exemple :
https://example.edu/search?q=water%20cycle&level=grade%206#results
Ses principales parties 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 entre les paramètres ne doit pas être confondue avec une esperluette encodée à l'intérieur d'une valeur.
Les développeurs créent souvent des problèmes en décodant une URL entière alors qu'un seul composant devrait l'être. Les caractères réservés peuvent jouer des rôles différents selon l'endroit où ils apparaissent.
Supposons qu'une requête contienne :
?topic=research%26writing
La valeur encodée représente :
research&writing
L'esperluette fait partie de la valeur du sujet. Si la requête entière est décodée puis analysée de manière incorrecte, l'esperluette peut être prise à tort pour un séparateur introduisant 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, plutôt que d'utiliser des remplacements de chaînes arbitraires.
Les élèves examinent :
https://example.edu/library?topic=space%20science
Ils identifient 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 une espace littérale n'est normalement pas écrite directement dans une URL partagée.
L'enseignant fournit :
?title=Design%20%26%20Technology
Le titre décodé est Design & Technology. Les élèves observent que l'esperluette encodée fait partie du titre plutôt que de séparer des paramètres.
Les élèves utilisent 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 caractère d'échappement en pourcentage incomplet, tel que %2. Les élèves déterminent pourquoi deux chiffres hexadécimaux sont attendus après le signe pourcentage.
Un élève copie un lien de recherche de bibliothèque contenant plusieurs mots encodés. L'URL visible est difficile à interpréter.
L'élève décode les valeurs de la requête et confirme les termes de recherche et filtres inclus. L'hôte est vérifié avant l'ouverture du lien.
Cela l'aide à comprendre comment un site web transmet des informations de recherche d'une page à l'autre.
Un développeur débutant envoie une requête contenant un titre de cours avec une esperluette. Le serveur reçoit le titre sous forme de deux paramètres distincts.
Le développeur examine la requête brute et découvre que l'esperluette n'a pas été encodée en tant que donnée. La valeur est préparée avec une API d'URL standard et testée à nouveau.
Le décodeur aide à expliquer la requête, mais la solution durable passe par un traitement structuré des URL plutôt que par un remplacement manuel.
Un enseignant reçoit un lien vers un document de classe, mais la destination indique que le fichier est introuvable.
L'URL est examinée et décodée. Un nom de fichier contient une barre oblique qui a peut-être été traitée comme un séparateur de chemin, ou une espace a été mal copiée.
L'enseignant demande un nouveau lien de partage au propriétaire du document plutôt que de modifier à l'aveugle une adresse privée inconnue.
Des élèves créent un formulaire de recherche simple et observent l'URL après avoir soumis un texte contenant des espaces et de la ponctuation.
Ils décodent les valeurs des paramètres et les comparent à la saisie d'origine du formulaire. 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, dossier d'élève ou réponse privée n'est utilisé dans cet exercice.
Un lien de newsletter scolaire contient plusieurs paramètres de suivi. Un enseignant souhaite savoir quelles informations y figurent avant de le partager.
L'URL est décomposée en paramètres, et leurs valeurs sont décodées. Les valeurs de suivi inutiles peuvent être retirées, mais seulement si cela ne casse pas la destination requise.
Le lien final est testé plutôt que simplement supposé fonctionnel après une modification manuelle.
Une classe d'informatique teste une courte expression non anglaise dans une URL. Le résultat encodé contient plusieurs séquences en pourcentage, car 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. La suppression d'un seul octet encodé en pourcentage peut produire un caractère de remplacement ou un texte invalide.
Cette activité démontre qu'un caractère visible ne correspond pas toujours à un seul octet encodé.
Un développeur s'attend à une espace mais voit %2520. La séquence %25 représente un signe pourcentage : un premier décodage produit donc %20, et un second peut produire une espace.
Le développeur retrace l'endroit où la valeur a été encodée deux fois. Le flux de données est corrigé plutôt que de décoder chaque saisie de manière répétée.
Un lien contient une autre URL encodée à l'intérieur d'un paramètre tel que redirect ou next.
L'utilisateur décode la valeur en texte brut et vérifie l'hôte de destination réel avant de l'ouvrir. Une adresse encodée ne doit pas être considérée comme fiable simplement parce que sa destination finale est difficile à lire.
| Saisie | Encodage probable | Outil approprié | Exemple décodé |
|---|---|---|---|
lesson%20notes |
Encodage en pourcentage d'URL | Décodage URL | lesson notes |
<p> |
Entités HTML | Décodage HTML | <p> |
SGVsbG8= |
Base64 | Décodage Base64 | Hello |
u003F |
Séquence d'échappement Unicode | Analyseur JSON ou spécifique au langage | ? |
Utilisez l'outil de décodage HTML pour les références d'entités, et l'outil de décodage Base64 uniquement lorsque vous savez que les données utilisent ces formats.
Les espaces sont généralement représentées par %20. Dans l'encodage de requête de type formulaire, un signe plus peut également être interprété comme une espace.
Cela crée une distinction importante :
class%20notes se décode généralement en class notes.class+notes peut se décoder en class notes dans le contexte d'une requête de formulaire.%2B.Utilisez la méthode de décodage conçue pour le composant et le format spécifiques concernés. Un décodeur de chemin et un décodeur de requête de formulaire peuvent ne pas traiter les signes plus de la même façon.
L'encodage en pourcentage opère au niveau des octets. Un caractère en dehors de l'ASCII de base peut être représenté par plusieurs octets encodés.
Par exemple, une lettre accentuée ou un caractère arabe peut apparaître sous la forme d'une séquence de plusieurs échappements en pourcentage. Tous les octets requis 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 :
Les caractères réservés peuvent modifier la structure une fois décodés. Séparez l'URL en composants et décodez uniquement la valeur visée.
Un décodage répété peut transformer des données auparavant sûres en séparateurs actifs ou en chemins inattendus. Cherchez pourquoi plusieurs couches d'encodage existent.
Remplacer %20 par des espaces ne traite pas tous les caractères encodés, les séquences UTF-8, les saisies mal formées ni les règles relatives au signe plus. Utilisez un analyseur d'URL structuré ou une API standard dans votre code.
Décodez-la d'abord sous forme de 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 selon le contexte. Choisissez le décodeur en fonction de la représentation réelle.
Un signe pourcentage doit être suivi de deux chiffres hexadécimaux. Des séquences incomplètes ou invalides peuvent signaler une saisie endommagée.
Les URL peuvent apparaître dans l'historique du navigateur, les journaux, les outils d'analyse, les captures d'écran et les messages partagés. Les identifiants sensibles ne doivent pas figurer dans les chaînes de requête.
Les valeurs décodées peuvent contenir des caractères ayant une signification particulière. Une barre oblique décodée peut modifier un chemin, une esperluette peut altérer des paramètres, et des chevrons peuvent se transformer en balisage s'ils sont insérés de manière incorrecte dans une page web.
Les applications doivent :
Le décodage n'est pas une désinfection. Il révèle les caractères représentés, mais ne détermine pas s'ils sont sûrs pour du HTML, des chemins de fichiers, des requêtes de base de données ou des redirections.
Une URL peut contenir des termes de recherche, des identifiants de documents, des adresses e-mail, des codes de classe, des noms de fichiers, des données de suivi et d'autres informations. Le décodage rend ces informations plus faciles à lire, mais ne les supprime pas.
Ne collez pas de liens scolaires privés, de jetons de réinitialisation, d'URL signées, d'adresses de dossiers d'élèves ni de données d'authentification dans un outil externe. Remplacez les valeurs sensibles par des exemples fictifs lors des cours et des démonstrations de débogage.
Avant de partager une capture d'écran d'une URL décodée, retirez les noms de compte, hôtes privés, jetons et identifiants de documents.
Les développeurs débutants devraient privilégier les API d'URL structurées. En JavaScript, une valeur de requête peut être examinée 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 de paramètre décodée. Elle est généralement plus sûre et plus claire que de découper manuellement la chaîne complète à chaque point d'interrogation, esperluette et signe égal.
Utilisez l'outil d'encodage d'URL pour préparer un texte destiné à être utilisé comme composant d'URL, puis décodez-le pour vérifier un exemple de cours.
Si la saisie contient des entités telles que &lt; ou &quot;, utilisez l'outil de décodage HTML. Pour un texte Base64 connu, 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 convertit des séquences encodées en pourcentage en caractères lisibles. Il aide les élèves à comprendre les adresses web et les développeurs à examiner 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 concerné, à ne décoder que ce qui est nécessaire, et à conserver la saisie d'origine. Traitez le résultat comme une donnée qui doit encore être validée.
Un lien décodé lisible est plus facile à examiner, mais cela ne le rend pas automatiquement sûr ou correct. Vérifiez sa structure, sa destination, ses paramètres, la confidentialité et l'encodage de caractères prévu avant de l'utiliser.