Strumenti URL
Codifica e decodifica URL: qual è la differenza?
Una guida reversibile e consapevole dei componenti per la codifica e la decodifica degli URL.
Di Vigneshwaran Vijayakumar, sviluppatore ed editore | | Recensito sotto il ClockTools politica editoriale
Sommario
La codifica URL converte i caratteri non sicuri o significativi in un componente URL in triplette percentuali; la decodifica dell'URL inverte le triplette valide in caratteri leggibili. Codifica prima di inserire dati grezzi in un componente. Decodifica quando è necessario controllare o utilizzare un valore già codificato. Codificatore URL ClockTools e Decodificatore URL ti consentono di testare entrambe le direzioni senza modificare il testo originale.
Scegli la direzione dall'input
Se l'input è costituito da dati leggibili come summer shoes & bags, codificalo prima di inserirlo in un valore di query. Se l'input contiene già sequenze come %20 e hai bisogno dei caratteri originali, decodificalo una volta. Standard URL WHATWG definisce set di codifica percentuale per l'analisi e la serializzazione degli URL; RFC 3986 spiega la forma della tripletta percentuale e i caratteri riservati.
| Hai | Ti serve | Operazione |
|---|---|---|
| Valore della query non elaborata | Componente sicuro per URL | Codificare |
| Triplette percentuali | Valore leggibile | Decodifica |
| URL analizzato completo | Un campo cambiato | Modifica quel componente, quindi serializzalo |
La codifica non è la crittografia. Rende la sintassi inequivocabile; non nasconde informazioni sensibili.
Segui un esempio reversibile
Inizia con summer shoes & bags. La codifica del componente produce summer%20shoes%20%26%20bags. Gli spazi diventano %20 e la e commerciale diventa %26, quindi si tratta di dati anziché di un separatore. Decodificare quel risultato una volta ripristina la frase originale.
Nella verifica in tempo reale di ClockTools, un esempio di 74 caratteri è diventato una stringa di 102 caratteri con 14 sequenze di escape in modalità componente URI. Questi conteggi descrivono solo quel campione; input diversi producono totali diversi.
Rispettare i limiti dei componenti URL
Un URL contiene parti con sintassi diversa: schema, host, percorso, query e frammento. Il flusso di lavoro più sicuro consiste nell'analizzare l'URL, modificare il valore previsto, quindi serializzarlo utilizzando l'API per il tuo ambiente. La codifica di un URL completo già assemblato può trasformare in sequenze di escape separatori come :, /, ? e & che dovrebbero mantenere il loro significato strutturale.
Il caso del carattere spazio richiede particolare attenzione. La codifica percentuale generica rappresenta uno spazio come %20. La serializzazione delle query in stile modulo HTML può invece utilizzare +. Leggi Codifica URL per uno spazio per quel problema di interoperabilità ristretta; questo articolo affronta la direzione dell'operazione, la scelta dei componenti e l'inversione.
Prevenire la doppia codifica
La doppia codifica avviene quando il testo codificato viene nuovamente passato attraverso un codificatore. Ad esempio, %20 può diventare %2520 perché % è codificato come %25. Tieni traccia se ciascun valore è grezzo o codificato, codifica a un limite e decodifica solo il numero di volte richiesto dal contratto dati. RFC 3986 avverte che le stringhe con codifica percentuale non devono essere codificate o decodificate più di una volta senza un motivo chiaro.
Durante il debug, copia il componente più piccolo nello strumento, decodificalo una volta e confronta il risultato con il valore grezzo previsto. Non incollare mai segreti, token o URL privati in uno strumento di cui non ti fidi.
Domande frequenti
Qual è la differenza tra codifica e decodifica dell'URL?
La codifica trasforma i caratteri in una rappresentazione sicura per il trasporto; la decodifica inverte le triplette percentuali valide in caratteri leggibili.
Devo codificare un URL completo o solo un componente?
Di solito codifica il valore o il componente che stai inserendo, non un URL già assemblato con separatori significativi.
Perché un URL a volte contiene %2520?
Di solito significa che %20 è stato nuovamente codificato: il segno di percentuale è diventato %25, producendo un valore con doppia codifica.
Un segno più è sempre uguale a uno spazio?
No. Alcuni parser di query con codifica modulo trattano + come uno spazio, mentre la codifica percentuale dell'URL generico utilizza %20.

