URL-parser

När en webhook missfyrar eller en spårningslänk bär med sig fel parametrar är det snabbaste att bryta isär URL:en och läsa varje del. Klistra in valfri URL så delar den här parsern upp den i sina beståndsdelar: schema, användarnamn och lösenord, värd, port, sökväg, query-sträng och fragment, och vecklar sedan ut query:n i en tabell med varje par av nyckel och värde. Den körs på vår server med PHP:s standardparser för URL, så du ser exakt hur en PHP-backend skulle läsa samma länk.

Så parsar du en URL

  1. 1

    Klistra in URL:en

    Lägg in valfri URL, absolut eller relativ. Det finns inget att klicka på: den parsas medan du skriver.

  2. 2

    Läs beståndsdelarna

    Tabellen fylls med det schema, den värd, port, användare, lösenord, sökväg, query och fragment som hittas. Tomma delar visas med ett streck.

  3. 3

    Veckla ut query:n

    Varje par `key=value` visas på sin egen rad, med procentkodning och `+` avkodade till riktiga tecken.

  4. 4

    Kopiera parametrarna

    Kopieringsknappen hämtar alla query-parametrar på en gång som `key=value`-rader, redo att klistras in i en API-klient.

En URL:s anatomi

Ta den här URL:en: https://user:pass@api.example.com:8443/v1/users?page=2&sort=name#profile. Parsern delar upp den i:

Beståndsdel Värde
scheme https
user user
pass pass
host api.example.com
port 8443
path /v1/users
query page=2&sort=name
fragment profile

Därefter vecklas query-strängen ut i en egen tabell: page = 2 och sort = name.

Så läses query-strängen

  • Värden avkodas från procentkodning och + blir ett mellanslag, så q=hello%20world och q=hello+world läses båda som hello world.
  • Ett par delas vid sitt första =, så token=a=b=c behåller a=b=c som värde.
  • Upprepade nycklar behåller bara det sista värdet: ?id=1&id=2 ger id = 2. För att behålla alla värden, använd array-syntaxen id[]=1&id[]=2, som visas som en lista.
  • Nycklar med hakparenteser som filter[status]=open blir en nästlad struktur som visas som JSON.

Portar, sökvägar och fragment

  • Porten visas exakt som den är skriven. Inget läggs till eller tas bort, så :443 visas som 443 och en URL utan port lämnar raden tom.
  • Ett avslutande snedstreck ändrar sökvägen: https://a.com har en tom sökväg, medan https://a.com/ har sökvägen /.
  • Fragmentet (efter #) är ett värde som bara webbläsaren använder för att skrolla till ett ankare eller styra en router på klientsidan. Det når aldrig servern, så allt som en backend måste läsa hör hemma i query-strängen.
  • Värden returneras exakt som den skrivs in; den här parsern konverterar inte internationaliserade (icke-ASCII) domäner till eller från Punycode.

Vanliga frågor

Ja. En relativ länk som /v1/users?ref=nav har inget schema eller värd, så de raderna förblir tomma medan sökväg och query ändå fylls i. Bara en felformaterad URL, till exempel med en icke-numerisk port som http://a.com:port, avvisas helt.

Bara det sista värdet behålls, så ?id=1&id=2 ger id = 2, precis som en PHP-backend skulle läsa det. Om du behöver alla värden, använd array-syntaxen id[]=1&id[]=2 så visas de som en lista.

Parsern anger porten exakt som den är skriven. Den tar aldrig bort en standardport eller lägger till en som saknas, så en URL utan port visar en tom rad och https://a.com:443 visar 443.

URL:en skickas till vår server för att parsas, eftersom det här verktyget körs på servern och inte bara i din webbläsare. Vi sparar inte själva URL:erna; vi registrerar bara en anonym räkning av att parsern har använts.

Relaterade verktyg

Verktyget finns på andra språk