URL Parser / Ispettore
Incolla uno o più URL completi (uno per linea) per abbattere ciascuno nel suo protocollo, host, path, stringa di query e frammento, con ogni parametro di query decodificato.
Incolla uno o più URL completi (uno per linea) per abbattere ciascuno nel suo protocollo, host, path, stringa di query e frammento, con ogni parametro di query decodificato.
Un URL può contenere solo in modo sicuro lettere, cifre e un piccolo insieme di simboli (- _ . ~). Tutto il resto, compresi gli spazi, la punteggiatura e i caratteri non-inglese, deve essere rappresentato con la percentuale di codifica prima che possa viaggiare all'interno di un URL.
Percent-encoding sostituisce un personaggio con un segno per cento seguito dal suo valore di byte esadecimale a due cifre, utilizzando UTF-8 per qualsiasi cosa al di fuori del ASCII di base. Uno spazio diventa %20, un ampersand diventa %26, e un carattere accentato o non latino può diventare diverse sequenze %XX di fila, poiché UTF-8 lo rappresenta come più di un byte.
Caratteri come ? & = # e / hanno un significato speciale in una struttura URL: contrassegnano la stringa di query, parametri separati, o introducono il frammento. Se i tuoi dati devono contenere uno di questi caratteri come valore piuttosto che come struttura, codificarlo prima, o il browser o il server potrebbero non leggere dove una parte dell'URL termina e il successivo inizia.
Decoding inverte il processo: legge ogni sequenza %XX nel carattere (o byte) che rappresenta, che è esattamente ciò che lo strumento di cui sopra fa.
| Carattere | codificato | Dove viene utilizzato |
|---|---|---|
| spazio | %20 | Separatore di parole dentro un valore |
| ! | %21 | |
| " | %22 | |
| # | %23 | Inizia il frammento |
| % | %25 | Inizia una sequenza codificata per cento |
| & | %26 | Separa i parametri di query |
| ' | %27 | |
| ( | %28 | |
| ) | %29 | |
| + | %2B | Spesso leggere come uno spazio all'interno di una stringa di query |
| , | %2C | |
| / | %2F | Separa segmenti di percorso |
| : | %3A | Segui lo schema, ad esempio https: |
| ; | %3B | |
| = | %3D | Assegna il valore del parametro query |
| ? | %3F | Avvia la stringa di query |
| @ | %40 | |
| [ | %5B | |
| ] | %5D |
Uno studente copia un indirizzo web da un modulo online e si trova davanti una scritta come science%20project%20notes. Chi inizia a programmare esamina una richiesta API e scopre che una e commerciale dentro un termine di ricerca compare come %26. L'indirizzo funziona, ma è difficile da leggere e da analizzare.
Uno strumento di decodifica URL riconverte le sequenze con il segno di percentuale nei caratteri corrispondenti. Per esempio, %20 di solito diventa uno spazio, mentre %26 diventa una e commerciale.
Decodificare serve a capire i link, a esaminare i parametri di una query, a studiare la codifica usata sul web e a individuare richieste malformate. Va fatto con attenzione, perché i caratteri riservati possono cambiare la struttura di un URL una volta decodificati.
Lo strumento non dice se una destinazione è sicura, corretta o autorizzata. Cambia soltanto il modo in cui i caratteri codificati sono rappresentati. Studenti e sviluppatori devono comunque controllare host, percorso, parametri e valori decodificati.
Gli URL usano alcuni caratteri per separare le proprie parti. Un punto di domanda può aprire una stringa di query, una e commerciale può separare i parametri e un cancelletto può indicare un frammento.
Quando uno di questi caratteri deve comparire come dato e non come separatore strutturale, può essere codificato con il segno di percentuale. Al segno di percentuale seguono due cifre esadecimali che rappresentano il valore di un byte.
| Valore codificato | Carattere decodificato | Significato tipico |
|---|---|---|
%20 |
Spazio | Separa le parole dentro un valore |
%21 |
! |
Punto esclamativo |
%23 |
# |
Cancelletto o indicatore di frammento |
%26 |
& |
E commerciale o separatore di query |
%2B |
+ |
Segno più |
%2F |
/ |
Barra o separatore di percorso |
%3A |
: |
Due punti |
%3D |
= |
Segno di uguale o separatore di parametro |
%3F |
? |
Punto di domanda o inizio della query |
Nelle sequenze con il segno di percentuale le lettere esadecimali non distinguono maiuscole e minuscole, quindi %2F e %2f rappresentano lo stesso byte.
Guarda questo esempio:
https://example.edu/search?q=water%20cycle&level=grade%206#results
Le sue parti principali sono:
httpsexample.edu/searchq=water%20cycle&level=grade%206resultsI valori della query si decodificano in “water cycle” e “grade 6”. La e commerciale strutturale tra i parametri non va confusa con una e commerciale codificata dentro un valore.
Chi sviluppa si crea spesso dei problemi decodificando un URL intero quando andrebbe decodificato un solo componente. I caratteri riservati possono avere ruoli diversi a seconda di dove compaiono.
Immagina una query che contiene:
?topic=research%26writing
Il valore codificato rappresenta:
research&writing
La e commerciale fa parte del valore del parametro. Se si decodifica l'intera query e poi la si analizza male, quella e commerciale può essere presa per un separatore che introduce un altro parametro.
Un'applicazione affidabile analizza l'URL secondo la sua struttura e decodifica ogni componente con un'apposita API per gli URL, invece di affidarsi a sostituzioni di testo improvvisate.
Gli studenti esaminano:
https://example.edu/library?topic=space%20science
Individuano host, percorso, nome del parametro e valore codificato.
Il valore space%20science diventa space science. Gli studenti spiegano perché di norma uno spazio vero non si scrive direttamente in un URL condiviso.
L'insegnante propone:
?title=Design%20%26%20Technology
Il titolo decodificato è Design & Technology. Gli studenti notano che la e commerciale codificata appartiene al titolo e non separa i parametri.
Gli studenti usano lo strumento di codifica URL per preparare un nuovo valore, poi lo decodificano e confrontano il risultato.
Una sequenza contiene un escape percentuale incompleto, per esempio %2. Gli studenti spiegano perché dopo il segno di percentuale servono due cifre esadecimali.
Uno studente copia il link di una ricerca in biblioteca che contiene diverse parole codificate. L'URL così come si vede è difficile da interpretare.
Lo studente decodifica i valori della query e verifica quali termini e filtri erano stati inclusi. Prima di aprire il link controlla l'host.
Questo gli fa capire come un sito trasporta le informazioni di ricerca da una pagina all'altra.
Chi inizia a programmare invia una richiesta con il titolo di un corso che contiene una e commerciale. Il server riceve quel titolo come due parametri distinti.
Esamina la richiesta grezza e scopre che la e commerciale non era stata codificata come dato. Prepara di nuovo il valore con un'API standard per gli URL e riprova.
Il decodificatore aiuta a spiegare la richiesta, ma la soluzione definitiva passa da una gestione strutturata degli URL, non da una sostituzione manuale.
Un'insegnante riceve il link a un documento di classe, ma la destinazione risponde che il file non si trova.
L'URL viene esaminato e decodificato. Il nome del file contiene una barra che potrebbe essere stata letta come separatore di percorso, oppure uno spazio è stato copiato male.
L'insegnante chiede un nuovo link di condivisione a chi possiede il documento, invece di modificare alla cieca un indirizzo privato che non conosce.
Gli studenti creano un semplice modulo di ricerca e osservano l'URL dopo aver inviato un testo con spazi e punteggiatura.
Decodificano i valori dei parametri e li confrontano con quanto avevano scritto nel modulo. La classe discute perché i browser codificano i valori prima di metterli in un URL.
Nell'esercizio non si usano password, dati scolastici o risposte private reali.
Il link di una circolare scolastica contiene diversi parametri di tracciamento. Un'insegnante vuole capire quali informazioni porta con sé prima di condividerlo.
L'URL viene scomposto nei suoi parametri e i valori vengono decodificati. I parametri di tracciamento superflui si possono togliere solo se questo non rompe la destinazione necessaria.
Il link finale va provato, non dato per funzionante dopo una modifica a mano.
Una classe di informatica prova a mettere in un URL una breve frase non inglese. Il risultato codificato contiene diverse sequenze percentuali, perché i caratteri UTF-8 possono occupare più byte.
Gli studenti decodificano la sequenza completa e la confrontano con la frase originale. Togliendo un solo byte codificato si può ottenere un carattere sostitutivo o un testo non valido.
L'attività dimostra che a un carattere visibile non corrisponde sempre un solo byte codificato.
Chi sviluppa si aspetta uno spazio e invece vede %2520. La sequenza %25 rappresenta il segno di percentuale, quindi un primo passaggio di decodifica produce %20 e un secondo può produrre uno spazio.
Si risale al punto in cui il valore è stato codificato due volte. Si corregge il flusso dei dati, invece di decodificare ogni dato in ingresso più e più volte.
Un link contiene un altro URL codificato dentro un parametro come redirect o next.
Chi lo riceve decodifica quel valore come testo e verifica qual è l'host di destinazione reale prima di aprirlo. Un indirizzo codificato non merita fiducia solo perché la sua destinazione finale è difficile da leggere.
| Dato in ingresso | Codifica probabile | Strumento corretto | Esempio decodificato |
|---|---|---|---|
lesson%20notes |
Codifica percentuale degli URL | Decodifica URL | lesson notes |
<p> |
Entità HTML | Decodifica HTML | <p> |
SGVsbG8= |
Base64 | Decodifica Base64 | Hello |
u003F |
Escape Unicode | Un parser JSON o del linguaggio | ? |
Usa lo strumento di decodifica HTML per i riferimenti alle entità e lo strumento di decodifica Base64 solo quando sai con certezza che i dati usano quei formati.
Gli spazi si rappresentano di solito come %20. Nella codifica tipica delle query dei moduli, anche il segno più può essere letto come uno spazio.
Da qui nasce una distinzione importante:
class%20notes di norma si decodifica in class notes.class+notes può decodificarsi in class notes nel contesto di una query di modulo.%2B.Usa il metodo di decodifica previsto per quel componente e per quel formato. Un decodificatore di percorsi e uno di query di modulo possono trattare il segno più in modo diverso.
La codifica percentuale lavora sui byte. Un carattere fuori dall'ASCII di base può essere rappresentato da più byte codificati.
Per esempio, una lettera accentata o un carattere arabo può comparire come una serie di escape percentuali. Tutti i byte necessari devono restare in ordine ed essere interpretati con la codifica di caratteri giusta.
Se nel risultato compaiono simboli sostitutivi, controlla se:
Dopo la decodifica i caratteri riservati possono cambiare la struttura. Scomponi l'URL nei suoi componenti e decodifica il valore che ti interessa.
Decodificare ripetutamente può trasformare dati innocui in separatori attivi o in percorsi inattesi. Capisci perché esistono più livelli di codifica.
Sostituire %20 con uno spazio non copre tutti i caratteri codificati, né le sequenze UTF-8, i dati malformati o le regole sul segno più. Nel codice usa un parser di URL strutturato o un'API standard.
Prima decodificala come testo. Esamina schema, nome host, percorso e parametri prima di decidere se visitarla.
%26 e & possono rappresentare entrambi una e commerciale, in contesti diversi. Scegli il decodificatore in base alla rappresentazione reale.
Dopo un segno di percentuale devono seguire due cifre esadecimali. Sequenze incomplete o non valide possono indicare dati danneggiati.
Gli URL possono finire nella cronologia del browser, nei log, nelle statistiche, negli screenshot e nei messaggi condivisi. Le credenziali sensibili non vanno messe nelle stringhe di query.
I valori decodificati possono contenere caratteri con un significato particolare. Una barra decodificata può incidere su un percorso, una e commerciale può alterare i parametri e le parentesi angolari possono diventare marcatori se inserite male in una pagina web.
Le applicazioni dovrebbero:
Decodificare non significa sanificare. La decodifica mostra quali caratteri erano rappresentati, ma non decide se sono sicuri per l'HTML, per i percorsi dei file, per le query al database o per i reindirizzamenti.
Un URL può contenere termini di ricerca, identificativi di documenti, indirizzi email, codici di classe, nomi di file, dati di tracciamento e altre informazioni. Decodificarlo rende tutto questo più leggibile, ma non lo rimuove.
Non incollare in uno strumento esterno link scolastici privati, token di reimpostazione, URL firmati, indirizzi che portano a dati degli studenti o informazioni di autenticazione. Durante le lezioni e le dimostrazioni sostituisci i valori sensibili con esempi inventati.
Prima di condividere lo screenshot di un URL decodificato, togli nomi di account, host privati, token e identificativi di documenti.
Chi inizia a programmare dovrebbe preferire le API dedicate agli URL. In JavaScript il valore di un parametro si legge così:
const url = new URL(
"https://example.edu/search?q=water%20cycle"
);
const query = url.searchParams.get("q");
console.log(query);
// water cycle
Questo approccio analizza l'URL e restituisce il valore del parametro già decodificato. In genere è più sicuro e più chiaro che spezzare a mano l'intera stringa a ogni punto di domanda, e commerciale e segno di uguale.
Usa lo strumento di codifica URL per preparare un testo da inserire in un URL, poi decodificalo per verificare un esempio di classe.
Se il testo contiene entità come &lt; o &quot;, usa lo strumento di decodifica HTML. Per un testo che sai essere in Base64, usa lo strumento di decodifica Base64.
Scegliere il decodificatore giusto evita trasformazioni inutili e rende l'analisi più affidabile.
La decodifica degli URL trasforma le sequenze percentuali in caratteri leggibili. Aiuta gli studenti a capire gli indirizzi web e aiuta chi sviluppa a esaminare valori di query, richieste API, testi in altre lingue, reindirizzamenti e problemi di doppia codifica.
Il metodo più sicuro è individuare il componente dell'URL, decodificare solo quello che serve e conservare il testo di partenza. Tratta il risultato come un dato che va comunque verificato.
Un link decodificato è più facile da esaminare, ma non per questo è sicuro o corretto. Controllane struttura, destinazione, parametri, implicazioni per la privacy e codifica di caratteri prima di usarlo.