Parser URL

Quando un webhook va in errore o un link di tracciamento porta i parametri sbagliati, il modo più rapido è scomporre l’URL e leggere ogni parte. Incolla un URL qualsiasi e questo parser lo suddivide nei suoi componenti: schema, nome utente e password, host, porta, percorso, stringa di query e frammento, poi espande la query in una tabella di coppie chiave-valore. Viene eseguito sul nostro server con il parser di URL standard di PHP, quindi vedi esattamente come un backend PHP leggerebbe lo stesso link.

Come analizzare un URL

  1. 1

    Incolla l'URL

    Inserisci un URL qualsiasi, assoluto o relativo. Non c'è nulla da cliccare: viene analizzato mentre digiti.

  2. 2

    Leggi i componenti

    La tabella si riempie con lo schema, l'host, la porta, l'utente, la password, il percorso, la query e il frammento trovati. Le parti vuote mostrano un trattino.

  3. 3

    Espandi la query

    Ogni coppia `key=value` compare nella propria riga, con la codifica percentuale e `+` decodificati in caratteri reali.

  4. 4

    Copia i parametri

    Il pulsante di copia prende tutti i parametri di query in una volta come righe `key=value`, pronte da incollare in un client API.

Anatomia di un URL

Prendi questo URL: https://user:pass@api.example.com:8443/v1/users?page=2&sort=name#profile. Il parser lo scompone in:

Componente Valore
scheme https
user user
pass pass
host api.example.com
port 8443
path /v1/users
query page=2&sort=name
fragment profile

La stringa di query viene poi espansa in una tabella a parte: page = 2 e sort = name.

Come viene letta la stringa di query

  • I valori vengono decodificati dal formato percentuale e + diventa uno spazio, quindi q=hello%20world e q=hello+world si leggono entrambi come hello world.
  • Una coppia viene divisa al suo primo =, quindi token=a=b=c mantiene a=b=c come valore.
  • Le chiavi ripetute mantengono solo l’ultimo valore: ?id=1&id=2 restituisce id = 2. Per mantenere tutti i valori, usa la sintassi array id[]=1&id[]=2, che viene mostrata come un elenco.
  • Le chiavi tra parentesi quadre come filter[status]=open diventano una struttura annidata, mostrata come JSON.

Porte, percorsi e frammenti

  • La porta viene mostrata esattamente com’è scritta. Non viene aggiunto né rimosso nulla, quindi :443 appare come 443 e un URL senza porta lascia la riga vuota.
  • Una barra finale cambia il percorso: https://a.com ha un percorso vuoto, mentre https://a.com/ ha il percorso /.
  • Il frammento (dopo #) è un valore usato solo dal browser per saltare a un’ancora o guidare un router lato client. Non raggiunge mai il server, quindi tutto ciò che un backend deve leggere va nella stringa di query.
  • L’host viene restituito esattamente com’è digitato; questo parser non converte i domini internazionalizzati (non ASCII) in Punycode né viceversa.

Domande frequenti

Sì. Un link relativo come /v1/users?ref=nav non ha schema né host, quindi quelle righe restano vuote mentre il percorso e la query vengono comunque compilati. Viene rifiutato del tutto solo un URL con un formato errato, per esempio con una porta non numerica come http://a.com:port.

Viene mantenuto solo l’ultimo valore, quindi ?id=1&id=2 restituisce id = 2, esattamente come lo leggerebbe un backend PHP. Se ti servono tutti i valori, usa la sintassi array id[]=1&id[]=2 e compariranno come un elenco.

Il parser riporta la porta esattamente com’è scritta. Non rimuove mai una porta predefinita né ne aggiunge una mancante, quindi un URL senza porta mostra una riga vuota e https://a.com:443 mostra 443.

L’URL viene inviato al nostro server per essere analizzato, poiché questo strumento viene eseguito sul server e non solo nel tuo browser. Non conserviamo gli URL stessi; registriamo solo un conteggio anonimo del fatto che il parser è stato usato.

Strumenti correlati

Strumento disponibile in altre lingue