URL-Parser
URLs (Uniform Resource Locators) identifizieren Ressourcen im Web. Dieses Tool zerlegt URLs in ihre Bestandteile: Schema, Host, Port, Pfad, Query-Parameter und Fragment. Es dekodiert automatisch prozentkodierte Werte, verarbeitet internationalisierte Domainnamen (IDN) mit Punycode-Konvertierung und kann eingebettete Daten wie Base64 oder JSON in Parametern erkennen.
Spezifikationen
Haeufige Anwendungsfaelle
- OAuth-2.0-Redirect-URLs und Callback-Parameter debuggen
- Webhook-URLs und deren Query-Parameter untersuchen
- Tracking-Parameter analysieren (UTM, Referrer-Daten)
- Mobile Deep Links dekodieren (app://, benutzerdefinierte Schemas)
- URL-Routing-Probleme beheben
- Internationalisierte Domainnamen zwischen Unicode und Punycode konvertieren
Funktionen
- Alle URL-Komponenten parsen (Schema, Host, Port, Pfad, Query, Fragment)
- Prozentkodierte (URL-kodierte) Werte automatisch dekodieren
- Query-String in Schluessel-Wert-Paare parsen
- Internationalisierte Domainnamen (IDN) zwischen Unicode und Punycode konvertieren
- Base64 oder JSON in Parameterwerten erkennen und dekodieren
- Einzelne Komponenten in die Zwischenablage kopieren
Beispiele
OAuth-Callback
Ausprobieren →Ein OAuth-2.0-Autorisierungs-Callback mit Code- und State-Parametern.
https://app.example.com/callback?code=abc123&state=xyz789&redirect_uri=https%3A%2F%2Fexample.comInternationalisierte Domain (Punycode)
Ausprobieren →Eine URL mit Punycode-kodiertem Domainnamen (xn---Praefix zeigt IDN an).
https://xn--mnchen-3ya.de/pathInternationalisierte Domain (Unicode)
Ausprobieren →Eine URL mit Unicode-Domainname, die in Punycode konvertiert wird.
https://münchen.de/pathTipps
- Prozentkodierung ersetzt unsichere Zeichen durch %XX, wobei XX der Hex-Wert ist.
- Das Fragment (#) wird nie an den Server gesendet; es ist nur clientseitig.
- Query-Parameter koennen mehrfach mit demselben Schluessel vorkommen.
- Einige Zeichen wie @ und : in Userinfo muessen kodiert werden.
- Verwenden Sie encodeURIComponent() fuer Parameterwerte, encodeURI() fuer vollstaendige URLs.
Verstaendnis URL-Parser
URLs (Uniform Resource Locators) sind das Adressierungssystem des Webs, definiert durch RFC 3986 als spezifischer Typ einer URI (Uniform Resource Identifier). Eine URL besteht aus mehreren Komponenten: einem Schema (Protokoll wie https), einer Authority (Host, optionaler Port, optionale Benutzerinformationen), einem Pfad, einem optionalen Query-String aus Schluessel-Wert-Parametern und einem optionalen Fragment-Identifier.
Prozentkodierung (URL-Kodierung) ist der Mechanismus zur Darstellung von Sonderzeichen in URLs. Zeichen ausserhalb des nicht reservierten Zeichensatzes (A-Z, a-z, 0-9, -, _, ., ~) muessen als %XX kodiert werden, wobei XX der Hex-Wert des Bytes ist. Leerzeichen werden zu %20 (oder + in Query-Strings). Nicht-ASCII-Zeichen werden zuerst als UTF-8-Bytes kodiert, dann wird jedes Byte prozentkodiert.
Query-Strings tragen Parameter als key=value-Paare, getrennt durch &-Zeichen. Webanwendungen nutzen diese fuer Suchbegriffe, Paginierung, Filterung, Sortierung und Tracking (UTM-Parameter). OAuth-2.0-Redirect-URLs tragen Autorisierungscodes und State-Tokens in Query-Parametern. Komplexe Werte koennen selbst URL-kodiert sein, wodurch Kodierungsschichten entstehen, die sorgfaeltig dekodiert werden muessen.
Internationalisierte Domainnamen (IDN) verwenden Punycode-Kodierung (RFC 3492) zur Darstellung von Nicht-ASCII-Zeichen in Domainnamen. Das xn---Praefix signalisiert ein Punycode-kodiertes Label. Zum Beispiel wird muenchen.de zu xn--mnchen-3ya.de. Diese Kodierung gewaehrleistet Kompatibilitaet mit dem reinen ASCII-DNS-System und unterstuetzt gleichzeitig Domainnamen in jeder Schrift.
JavaScript bietet zwei Funktionen fuer die URL-Kodierung mit unterschiedlichen Zwecken. encodeURI kodiert eine vollstaendige URI und bewahrt Zeichen mit struktureller Bedeutung in URLs (wie : / ? # @ und =). encodeURIComponent kodiert eine einzelne URI-Komponente wie einen Query-Parameter-Wert und kodiert alle Sonderzeichen einschliesslich / und &. Verwenden Sie encodeURIComponent fuer Parameterwerte und encodeURI nur beim Kodieren einer vollstaendigen URL. Der Fragment-Identifier (alles nach #) ist laut RFC 3986 nur clientseitig — Browser verwenden ihn fuer In-Page-Navigation und clientseitiges Routing in Single-Page-Applications, aber er wird nie in HTTP-Anfragen an den Server einbezogen.
Punycode ist die Kodierung, die internationalisierte Domainnamen innerhalb des reinen ASCII-DNS-Systems ermoeglicht. Domains mit nicht-lateinischen Zeichen werden im DNS mit Punycode mit einem xn---Praefix gespeichert, sodass muenchen.de als xn--mnchen-3ya.de gespeichert wird. Browser zeigen Benutzern die Unicode-Form an, waehrend sie im Hintergrund die Punycode-Form fuer die DNS-Aufloesung verwenden.
Query-Strings koennen mehrere Werte fuer denselben Parameternamen enthalten, wie ?color=red&color=blue. Verschiedene Frameworks behandeln dies unterschiedlich — einige geben den letzten Wert zurueck, einige den ersten und einige ein Array aller Werte. Dieses Tool zeigt alle Parameter-Vorkommen an. In JavaScript ruft URLSearchParams.getAll() alle Werte fuer einen wiederholten Schluessel ab, anstatt nur den ersten oder letzten.