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 vede un testo come science%20project%20notes. Uno sviluppatore alle prime armi esamina una richiesta API e scopre che una e commerciale all'interno di un valore di ricerca appare come %26. Il link funziona, ma è difficile da leggere e da debuggare.
Uno strumento di decodifica URL riconverte le sequenze con codifica percentuale nei rispettivi caratteri. Ad esempio, %20 diventa comunemente uno spazio, mentre %26 diventa una e commerciale.
La decodifica è utile per comprendere i link, esaminare i parametri di query, studiare la codifica web e diagnosticare richieste malformate. Va eseguita con attenzione, perché i caratteri riservati possono modificare la struttura di un URL dopo la decodifica.
Lo strumento non stabilisce se una destinazione è sicura, corretta o autorizzata. Cambia solo la rappresentazione dei caratteri codificati. Studenti e sviluppatori devono comunque esaminare host, percorso, parametri e valori decodificati.
Gli URL usano determinati caratteri per separare le loro parti. Un punto interrogativo può introdurre una stringa di query, un'e commerciale può separare i parametri e un cancelletto può identificare un frammento.
Quando uno di questi caratteri deve comparire come dato anziché come separatore strutturale, può essere codificato con il simbolo percentuale. Un simbolo di percentuale è seguito da due cifre esadecimali che rappresentano un valore in byte.
| Valore codificato | Carattere decodificato | Significato comune |
|---|---|---|
%20 |
Spazio | Separa le parole all'interno di 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 uguale o separatore di parametro |
%3F |
? |
Punto interrogativo o indicatore di query |
Le lettere esadecimali nelle sequenze percentuali non distinguono maiuscole e minuscole, quindi %2F e %2f rappresentano lo stesso byte.
Considera 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". L'e commerciale strutturale tra i parametri non va confusa con un'e commerciale codificata all'interno di un valore.
Gli sviluppatori spesso creano problemi decodificando un intero URL quando dovrebbe essere decodificato solo un componente. I caratteri riservati possono avere ruoli diversi a seconda di dove compaiono.
Supponiamo che una query contenga:
?topic=research%26writing
Il valore codificato rappresenta:
research&writing
L'e commerciale fa parte del valore dell'argomento. Se l'intera query viene decodificata e poi interpretata in modo scorretto, l'e commerciale può essere scambiata per un separatore che introduce un altro parametro.
Un'applicazione affidabile analizza l'URL in base alla sua struttura e decodifica ogni componente con un'API URL appropriata, invece di usare sostituzioni di stringhe arbitrarie.
Gli studenti esaminano:
https://example.edu/library?topic=space%20science
Identificano host, percorso, nome del parametro e valore codificato.
Il valore space%20science diventa space science. Gli studenti spiegano perché uno spazio letterale non viene normalmente scritto direttamente in un URL condiviso.
L'insegnante fornisce:
?title=Design%20%26%20Technology
Il titolo decodificato è Design & Technology. Gli studenti osservano che l'e commerciale codificata appartiene al titolo, invece di separare 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 come %2. Gli studenti individuano perché dopo il simbolo di percentuale sono attese due cifre esadecimali.
Uno studente copia un link di ricerca di una biblioteca contenente diverse parole codificate. L'URL visibile è difficile da interpretare.
Lo studente decodifica i valori della query e conferma quali termini di ricerca e filtri erano inclusi. L'host viene verificato prima di aprire il link.
Questo aiuta lo studente a capire come un sito web trasporta le informazioni di ricerca tra le pagine.
Uno sviluppatore alle prime armi invia una richiesta contenente il titolo di un corso con un'e commerciale. Il server riceve il titolo come due parametri separati.
Lo sviluppatore esamina la richiesta grezza e scopre che l'e commerciale non era stata codificata come dato. Il valore viene preparato con un'API URL standard e testato di nuovo.
Il decodificatore aiuta a spiegare la richiesta, ma la soluzione definitiva usa una gestione strutturata degli URL invece di sostituzioni manuali.
Un insegnante riceve un link a un documento di classe, ma la destinazione segnala che il file non è stato trovato.
L'URL viene esaminato e decodificato. Un nome file contiene una barra che potrebbe essere stata trattata come separatore di percorso, oppure uno spazio è stato copiato in modo errato.
L'insegnante ottiene un nuovo link di condivisione dal proprietario del documento, invece di modificare alla cieca un indirizzo privato sconosciuto.
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 l'input originale del modulo. La classe discute perché i browser codificano i valori prima di inserirli in un URL.
Nell'esercizio non vengono usate password reali, registri degli studenti o risposte private.
Un link della newsletter scolastica contiene diversi parametri di tracciamento. Un insegnante vuole capire quali informazioni sono incluse prima di condividerlo.
L'URL viene suddiviso in parametri e i loro valori vengono decodificati. I valori di tracciamento non necessari possono essere rimossi solo se ciò non compromette la destinazione richiesta.
Il link finale viene testato invece di dare per scontato che funzioni dopo una modifica manuale.
Una classe di informatica prova una breve frase non inglese in un URL. 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. Rimuovere un byte codificato con percentuale può produrre un carattere sostitutivo o testo non valido.
L'attività dimostra che un carattere visibile non corrisponde sempre a un solo byte codificato.
Uno sviluppatore si aspetta uno spazio ma vede %2520. La sequenza %25 rappresenta un simbolo di percentuale, quindi una prima decodifica produce %20, e un'altra può produrre uno spazio.
Lo sviluppatore rintraccia dove il valore è stato codificato due volte. Il flusso dei dati viene corretto invece di decodificare ripetutamente ogni input.
Un link contiene un altro URL codificato all'interno di un parametro come redirect o next.
L'utente decodifica il valore come testo semplice e verifica l'host di destinazione effettivo prima di aprirlo. Un indirizzo codificato non dovrebbe essere considerato affidabile solo perché la sua destinazione finale è difficile da leggere.
| Input | Codifica probabile | Strumento corretto | Esempio decodificato |
|---|---|---|---|
lesson%20notes |
Codifica percentuale URL | Decodifica URL | lesson notes |
<p> |
Entità HTML | Decodifica HTML | <p> |
SGVsbG8= |
Base64 | Decodifica Base64 | Hello |
u003F |
Sequenza di escape Unicode | Parser JSON o consapevole del linguaggio | ? |
Usa lo strumento di decodifica HTML per i riferimenti alle entità e lo strumento di decodifica Base64 solo quando è noto che i dati usano quei formati.
Gli spazi sono comunemente rappresentati come %20. Nella codifica delle query in stile modulo, anche un segno più può essere interpretato come uno spazio.
Questo crea una distinzione importante:
class%20notes si decodifica comunemente in class notes.class+notes può decodificarsi in class notes in un contesto di query da modulo.%2B.Usa il metodo di decodifica progettato per il componente e il formato specifici. Un decodificatore di percorsi e un decodificatore di query da modulo potrebbero non trattare i segni più allo stesso modo.
La codifica percentuale opera sui byte. Un carattere al di fuori dell'ASCII di base può essere rappresentato da diversi byte codificati.
Ad esempio, una lettera accentata o un carattere arabo può apparire come una sequenza di più escape percentuali. Tutti i byte richiesti devono restare nell'ordine corretto ed essere interpretati usando la codifica dei caratteri giusta.
Se l'output contiene simboli sostitutivi, verifica se:
I caratteri riservati possono cambiare la struttura dopo la decodifica. Separa l'URL nei suoi componenti e decodifica solo il valore desiderato.
La decodifica ripetuta può trasformare dati prima sicuri in separatori attivi o percorsi imprevisti. Individua perché esistono più livelli di codifica.
Sostituire %20 con spazi non gestisce tutti i caratteri codificati, le sequenze UTF-8, l'input malformato o le regole sul segno più. Usa un parser URL strutturato o un'API standard nel codice.
Decodificala prima come testo. Esamina schema, nome host, percorso e parametri prima di decidere se visitarla.
%26 e & possono entrambi rappresentare un'e commerciale in contesti diversi. Scegli il decodificatore in base alla rappresentazione effettiva.
Un simbolo di percentuale dovrebbe essere seguito da due cifre esadecimali. Sequenze incomplete o non valide possono indicare un input danneggiato.
Gli URL possono comparire nella cronologia del browser, nei log, nelle analisi, negli screenshot e nei messaggi condivisi. Le credenziali sensibili non dovrebbero essere inserite nelle stringhe di query.
I valori decodificati possono contenere caratteri con un significato speciale. Una barra decodificata può influire su un percorso, un'e commerciale può alterare i parametri, e le parentesi angolari possono diventare markup se inserite in modo scorretto in una pagina web.
Le applicazioni dovrebbero:
La decodifica non è sanificazione. Rivela i caratteri rappresentati, ma non stabilisce se sono sicuri per HTML, percorsi di file, query di database o reindirizzamenti.
Un URL può contenere termini di ricerca, identificatori di documenti, indirizzi email, codici classe, nomi file, dati di tracciamento e altre informazioni. La decodifica rende queste informazioni più facili da leggere, ma non le rimuove.
Non incollare link scolastici privati, token di reset, URL firmati, indirizzi di registri degli studenti o dati di autenticazione in uno strumento esterno. Sostituisci i valori sensibili con esempi fittizi durante le lezioni e le dimostrazioni di debug.
Prima di condividere uno screenshot di un URL decodificato, rimuovi nomi account, host privati, token e identificatori di documenti.
Gli sviluppatori alle prime armi dovrebbero preferire API URL strutturate. In JavaScript, un valore di query può essere esaminato 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 decodificato del parametro. È generalmente più sicuro e più chiaro che dividere manualmente l'intera stringa a ogni punto interrogativo, e commerciale e segno uguale.
Usa lo strumento di codifica URL per preparare un testo da usare come componente di un URL, poi decodificalo per verificare un esempio didattico.
Se l'input contiene entità come &lt; o &quot;, usa lo strumento di decodifica HTML. Per testo Base64 noto, usa lo strumento di decodifica Base64.
Scegliere il decodificatore corretto evita trasformazioni non necessarie e rende il debug più affidabile.
La decodifica URL trasforma sequenze con codifica percentuale in caratteri leggibili. Aiuta gli studenti a capire gli indirizzi web e aiuta gli sviluppatori a esaminare valori di query, richieste API, testo multilingue, reindirizzamenti e problemi di doppia codifica.
Il metodo più sicuro consiste nell'identificare il componente dell'URL, decodificare solo ciò che serve e conservare l'input originale. Considera il risultato come dati che richiedono comunque una convalida.
Un link decodificato leggibile è più facile da esaminare, ma ciò non lo rende automaticamente sicuro o corretto. Controlla struttura, destinazione, parametri, privacy e codifica dei caratteri prevista prima di usarlo.