Parser URL

Gli URL (Uniform Resource Locator) identificano le risorse sul web. Questo strumento scompone gli URL nei loro componenti: schema, host, porta, percorso, parametri di query e frammento. Decodifica automaticamente i valori codificati in percentuale, gestisce i nomi di dominio internazionalizzati (IDN) con conversione Punycode e puo rilevare dati incorporati come Base64 o JSON nei parametri.

Specifiche

Casi d'uso comuni

  • Debug degli URL di reindirizzamento OAuth 2.0 e dei parametri di callback
  • Ispezione degli URL webhook e dei loro parametri di query
  • Analisi dei parametri di tracciamento (UTM, dati referrer)
  • Decodifica dei deep link mobile (app://, schemi personalizzati)
  • Risoluzione dei problemi di routing URL
  • Conversione dei nomi di dominio internazionalizzati tra Unicode e Punycode

Funzionalità

  • Analisi di tutti i componenti URL (schema, host, porta, percorso, query, frammento)
  • Decodifica automatica dei valori codificati in percentuale (URL-encoded)
  • Analisi della query string in coppie chiave-valore
  • Conversione dei nomi di dominio internazionalizzati (IDN) tra Unicode e Punycode
  • Rilevamento e decodifica di Base64 o JSON nei valori dei parametri
  • Copia dei singoli componenti negli appunti

Esempi

Callback OAuth

Provalo →

Un callback di autorizzazione OAuth 2.0 con parametri code e state.

https://app.example.com/callback?code=abc123&state=xyz789&redirect_uri=https%3A%2F%2Fexample.com

Dominio Internazionalizzato (Punycode)

Provalo →

Un URL con nome di dominio codificato in Punycode (il prefisso xn-- indica IDN).

https://xn--mnchen-3ya.de/path

Dominio Internazionalizzato (Unicode)

Provalo →

Un URL con nome di dominio Unicode che verra convertito in Punycode.

https://münchen.de/path

Suggerimenti

  • La codifica percentuale sostituisce i caratteri non sicuri con %XX dove XX e il valore esadecimale.
  • Il frammento (#) non viene mai inviato al server; e solo lato client.
  • I parametri di query possono apparire piu volte con la stessa chiave.
  • Alcuni caratteri come @ e : nelle informazioni utente richiedono la codifica.
  • Usa encodeURIComponent() per i valori dei parametri, encodeURI() per gli URL completi.

Approfondimenti Parser URL

Gli URL (Uniform Resource Locator) sono il sistema di indirizzamento del web, definiti dalla RFC 3986 come tipo specifico di URI (Uniform Resource Identifier). Un URL e composto da diversi componenti: uno schema (protocollo come https), un'autorita (host, porta opzionale, informazioni utente opzionali), un percorso, una query string opzionale di parametri chiave-valore e un identificatore di frammento opzionale.

La codifica percentuale (codifica URL) e il meccanismo per rappresentare i caratteri speciali negli URL. I caratteri al di fuori del set non riservato (A-Z, a-z, 0-9, -, _, ., ~) devono essere codificati come %XX dove XX e il valore esadecimale del byte. Gli spazi diventano %20 (o + nelle query string). I caratteri non ASCII vengono prima codificati come byte UTF-8, poi ogni byte viene codificato in percentuale.

Le query string trasportano parametri come coppie key=value separate da caratteri &. Le applicazioni web le utilizzano per termini di ricerca, paginazione, filtri, ordinamento e tracciamento (parametri UTM). Gli URL di reindirizzamento OAuth 2.0 trasportano codici di autorizzazione e token di stato nei parametri di query. I valori complessi possono essere essi stessi URL-encoded, creando livelli di codifica che richiedono una decodifica attenta.

I nomi di dominio internazionalizzati (IDN) utilizzano la codifica Punycode (RFC 3492) per rappresentare caratteri non ASCII nei nomi di dominio. Il prefisso xn-- segnala un'etichetta codificata in Punycode. Ad esempio, muenchen.de diventa xn--mnchen-3ya.de. Questa codifica garantisce la compatibilita con il sistema DNS solo ASCII supportando al contempo nomi di dominio in qualsiasi scrittura.

JavaScript fornisce due funzioni per la codifica URL che servono scopi diversi. encodeURI codifica un URI completo, preservando i caratteri con significato strutturale negli URL (come : / ? # @ e =). encodeURIComponent codifica un singolo componente URI come un valore di parametro di query, codificando tutti i caratteri speciali inclusi / e &. Usa encodeURIComponent per i valori dei parametri e encodeURI solo quando codifichi un URL completo. L'identificatore di frammento (tutto dopo #) e definito dalla RFC 3986 come solo lato client: i browser lo usano per la navigazione nella pagina e il routing lato client nelle applicazioni a pagina singola, ma non viene mai incluso nelle richieste HTTP inviate al server.

Punycode e la codifica che rende possibili i nomi di dominio internazionalizzati all'interno del sistema DNS solo ASCII. I domini contenenti caratteri non latini vengono memorizzati nel DNS usando Punycode con un prefisso xn--, quindi muenchen.de viene memorizzato come xn--mnchen-3ya.de. I browser mostrano la forma Unicode agli utenti mentre usano la forma Punycode per la risoluzione DNS in background.

Le query string possono contenere piu valori per lo stesso nome di parametro, come ?color=red&color=blue. I diversi framework gestiscono questo in modo diverso: alcuni restituiscono l'ultimo valore, alcuni il primo e alcuni restituiscono un array di tutti i valori. Questo strumento mostra tutte le occorrenze dei parametri. In JavaScript, URLSearchParams.getAll() recupera tutti i valori per una chiave ripetuta piuttosto che solo il primo o l'ultimo.

← Torna a tutti gli strumenti