🌐 IT

🔗 Codificatore/Decodificatore URL

Codifica o decodifica gli URL in modo sicuro. Elabora caratteri speciali, caratteri internazionali e spazi nei parametri di query per creare URL validi.

GUIDA

Scopri di piu

01

1. Che cos'è la codifica URL?

La codifica URL (codifica percentuale) è il processo di conversione dei caratteri non sicuri negli URL in % seguito da codici esadecimali. Poiché gli URL consentono solo caratteri ASCII, il coreano, i caratteri speciali e gli spazi richiedono codifica. Per esempio, lo spazio diventa %20, @ diventa %40 e il carattere é viene codificato come %C3%A9. Definito nello standard RFC 3986, tutto ciò che non è A-Z, a-z, 0-9, -, _, ., ~ deve essere codificato. Le diverse parti degli URL (parametri di query, percorsi, hash) hanno regole di codifica diverse.

02

2. Perché codificare i caratteri speciali

I caratteri speciali negli URL hanno significati specifici, quindi devono essere codificati per poter essere usati come valori. Per esempio, & è un separatore di parametri, quindi per includere & in un valore va codificato come %26. = è un separatore chiave-valore, ? avvia le query, # avvia i frammenti. Gli spazi vengono codificati come + o %20. Senza codifica, il coreano o altri caratteri speciali potrebbero impedire al server di analizzare correttamente l'URL o causare errori 404. Codifica sempre quando inserisci termini di ricerca o input dell'utente negli URL.

03

3. Codifica dei parametri di query

I parametri di query sono la parte degli URL che viene codificata più spesso. Esempio: https://example.com/search?q=search&category=IT. Sia "search" sia "IT" devono essere codificati. Usando encodeURIComponent() di JavaScript si codificano =, &, ? rendendo sicuri i valori dei parametri di query. encodeURI() serve per codificare URL completi ma non codifica =, &, ?, quindi non è adatto ai valori di query. Codifica sempre separatamente chiavi e valori con encodeURIComponent().

04

4. encodeURI vs encodeURIComponent

JavaScript ha due funzioni di codifica URL. encodeURI() codifica URL completi e non codifica i caratteri della struttura URL come :, /, ?, &, =. Usala per URL completi. encodeURIComponent() codifica i componenti dell'URL (valori dei parametri, ecc.) e codifica tutti i caratteri della struttura. Usala per componenti singoli come parametri di query e segmenti di percorso. Nella maggior parte dei casi, usare encodeURIComponent() è più sicuro. Decodifica rispettivamente con decodeURI() e decodeURIComponent().

05

5. Nomi di dominio internazionalizzati (IDN)

I nomi di dominio in coreano o in altre lingue (ad esempio hanguk.com) vengono convertiti in Punycode. Punycode rappresenta i domini Unicode in ASCII usando il prefisso xn--. Esempio: "hanguk.com" diventa "xn--3e0b707e.com". I browser eseguono automaticamente questa conversione, ma quando la gestisci direttamente nel codice serve una libreria Punycode. Nota che i percorsi e le query degli URL usano la normale codifica percentuale, mentre i domini usano Punycode.

06

6. Buone pratiche per la codifica URL

Considerazioni importanti per la codifica URL: codifica sempre l'input dell'utente per prevenire attacchi XSS. Fai attenzione a non ricodificare URL già codificati. Quando costruisci gli URL, codifica ogni parte singolarmente e poi combinala. I client HTTP come fetch() e axios spesso codificano automaticamente, quindi evita duplicazioni. I server in genere supportano la decodifica automatica, quindi la decodifica esplicita è per lo più inutile. Quando registri o esegui debug degli URL, visualizzare la forma decodificata è più facile da leggere.

Domande frequenti

Dovrei scegliere la codifica componente o la codifica URL completa?
Usa "codifica componente" quando codifichi solo una parte di un URL, ad esempio il valore di un parametro di query. Usa "codifica URL completa" solo quando gestisci un URL intero e completo.
Perché gli URL non inglesi devono essere codificati?
Gli URL consentono solo caratteri ASCII, quindi i caratteri non ASCII (come é, il coreano o il cinese) devono essere convertiti in codifica percentuale (ad esempio %C3%A9) affinché i server li analizzino correttamente.
Cosa succede se codifico un URL già codificato?
Ottieni una doppia codifica, in cui % viene ricodificato come %25 e il valore originale si corrompe. Verifica se una stringa è già codificata prima di codificarla di nuovo.
Cosa devo fare se la decodifica mostra l'errore "Invalid URL encoding"?
Controlla se nel tuo input ci sono sequenze percentuali incomplete (ad esempio %2 senza abbastanza cifre esadecimali successive). Solo le stringhe codificate correttamente possono essere decodificate.
Come vengono codificati gli spazi?
Gli spazi vengono in genere codificati come + nelle stringhe di query o come %20 nei percorsi. Questo strumento usa il formato standard di codifica percentuale %20.