onlinetools.dev

URL-Parser

Eine URL in Protokoll, Host, Pfad und Query-Parameter zerlegen

Läuft lokal
loading…
Über dieses Tool

Füge eine URL ein und sieh sie seziert: Protokoll, Host, Port, Pfad, Fragment und jeder Query-Parameter als dekodierte Key-Value-Tabelle. Verwendet wird derselbe WHATWG-URL-Parser, den dein Browser für die Navigation nutzt — die Interpretation, die du siehst, ist also die, die ein Browser tatsächlich anwendet, inklusive Sonderfällen wie dem Weglassen von Standard-Ports und der Normalisierung von Pfaden.

Die Query-Parameter-Tabelle ist der Teil, den du am häufigsten brauchst: Lange OAuth-Redirects, Analytics-getaggte Links und API-Aufrufe werden auf einen Blick lesbar, jeder Wert bereits prozent-dekodiert. Nackte Domains ohne Schema werden ebenfalls akzeptiert; fürs Parsen wird https:// angenommen.

Der Parser ergänzt sich natürlich mit dem URL-Encoder — parse hier eine URL, um den benötigten Parameter zu finden, ändere den Wert und kodiere ihn dort neu.

Häufige Fragen

Warum unterscheidet sich die geparste URL leicht von meiner Eingabe?
Der WHATWG-Parser normalisiert: Er schreibt Schema und Host klein, entfernt Standard-Ports (:443 für https), löst ./- und ../-Pfadsegmente auf und kodiert Zeichen, die es brauchen. Was du siehst, ist die kanonische Form, auf die sich Server und Browser einigen.
Kommt der Parser mit URLs mit doppelten Query-Keys klar?
Ja — jedes Vorkommen wird als eigene Zeile gelistet, in Reihenfolge. Doppelte Keys sind legal und verbreitet: Viele APIs lesen sie als Arrays (?tag=a&tag=b).
Was ist der Unterschied zwischen host und hostname?
hostname ist nur die Domain (example.com); host enthält zusätzlich einen expliziten Nicht-Standard-Port (example.com:8080). Ist der Port der Standard des Schemas, sehen beide gleich aus, weil der Port weggelassen wird.
Wird das Fragment (#...) an den Server gesendet?
Nein. Alles nach # bleibt im Browser — Server sehen es nie. Deshalb haben Single-Page-Apps es historisch für clientseitiges Routing genutzt, und deshalb sind Analytics-Parameter hinter # für das Backend unsichtbar.
Verwandte Tools