PK Systems PK Systems
Web e marketing

Parser di URL

Scomponi qualsiasi URL nelle sue parti: protocollo, host, porta, percorso, query e frammento, con decodifica punycode degli IDN ed estrazione delle coppie di query. Funziona interamente nel tuo browser.

Parser di URL

Incolla qualsiasi URL. Sono supportati sia gli host ASCII sia quelli internazionalizzati.

Componenti

Parametri di query

ChiaveValore

Nessun parametro di query.

URL normalizzato

Cos'è un parser di URL?

Un parser di URL suddivide un Uniform Resource Locator nelle parti etichettate definite dall'RFC 3986: schema, userinfo opzionale, host (con porta opzionale), percorso, query e frammento. Ogni browser, server, proxy, CDN e link checker deve farlo internamente prima di poter instradare o riscrivere una richiesta. Vedere la scomposizione esplicita rende facile individuare bug di codifica, slash fuori posto, credenziali finite per errore negli URL e attacchi omografici tramite IDN.

Come usare questo parser

Incolla un URL nella casella. Il pannello dei componenti si aggiorna all'istante. Guarda la riga host per vedere se è in gioco il punycode (un host che inizia con xn-- è codificato in IDN), controlla la riga porta per confermare se l'URL usa quella predefinita del protocollo, e scorri la tabella dei parametri di query per vedere esattamente quali chiavi e valori arriverebbero al server. La riga URL normalizzato mostra come appare l'URL dopo che il parser del browser lo ha ripulito: schema in maiuscolo convertito in minuscolo, porta predefinita rimossa, percent-encoding sistemato.

Perché i frammenti non arrivano al server

Il frammento, la parte dopo #, è riservato allo user agent. I browser lo rimuovono prima di inviare la richiesta HTTP, ed è per questo che il server (e i tuoi access log, e i dati grezzi delle landing page nei tool di analytics) non possono vederlo. Le single-page app sfruttano questa cosa di proposito per far sembrare la navigazione istantanea: i cambi di rotta aggiornano il frammento invece di scatenare una vera richiesta di rete. Se hai bisogno che un valore arrivi al server, mettilo nella query string, non nel frammento.

Anatomia di un URL

Parte Esempio Ruolo
protocolhttps:Indica al client quale protocollo usare.
hostshop.example.comIl server a cui connettersi. Può essere un nome di dominio o un IP letterale.
port8443Porta TCP. Predefinita 80 per http, 443 per https.
path/cart/checkoutPercorso della risorsa sul server. Inizia sempre con /.
query?id=42&ref=hpCoppie chiave/valore opzionali dopo il ?.
fragment#paymentAncora lato client dopo il #. Non viene mai inviata al server.

Domande frequenti

Questo strumento invia i miei URL da qualche parte?
No. Il parsing usa il costruttore URL integrato del browser; nulla viene caricato. Apri DevTools > Network e vedrai che mentre digiti non parte alcuna richiesta.
Cos'è il punycode?
Il punycode è la codifica solo ASCII per i nomi di dominio internazionalizzati. münchen.de sul filo è xn--mnchen-3ya.de. Il parser mostra entrambe le forme così puoi individuare attacchi omografici in cui un host malevolo si camuffa da brand familiare.
Perché il parser mostra la userinfo se incollo un URL con credenziali?
Perché l'RFC 3986 definisce ancora quella sintassi. I browser mostrano un avviso e rimuovono le credenziali prima della navigazione, ma molti tool da CLI, scraper e SDK legacy le accettano. Trattare qualsiasi URL con userinfo come sospetto è un'impostazione sensata in code review.
Le chiavi di query ripetute vengono preservate?
Sì. ?tag=a&tag=b mostra entrambe le righe. Come un server interpreta i duplicati dipende dal framework: PHP per default tiene l'ultimo valore, URLSearchParams di Node.js restituisce un array. Il parser non deduplica; mostra ciò che è effettivamente nell'URL.
Cosa viene decodificato dal percent-encoding?
Ogni componente è mostrato decodificato per leggibilità, ma l'URL normalizzato mantiene la forma canonica con percent-encoding così puoi rincollarlo nel codice senza far passare caratteri non sicuri. Spazi, slash e caratteri riservati restano codificati dove richiesto.
Posso analizzare URL mailto: o tel:?
Sì, qualsiasi URL accettato dal costruttore URL del browser. Per mailto: l'indirizzo sta nel percorso, gli header come ?subject= compaiono come parametri di query. Per costruzioni mailto più avanzate, vedi il nostro generatore dedicato di link mailto.