URL-Parser
Eine URL in Protokoll, Host, Pfad und Query-Parameter zerlegen
Ü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.