RunToolz iconRunToolz
Welcome to RunToolz!
URLWebentwicklungKodierung

Warum deine URL kaputt ging (und wie du es behebst)

URL-Kodierung ist nicht optional. Hier erfährst du, warum Sonderzeichen Probleme verursachen und was du dagegen tun kannst.

RunToolz Team5. Januar 20263 min read

Du fügst eine URL in eine E-Mail ein. Jemand klickt darauf. Sie bekommen einen 404.

Die URL sah gut aus. Aber irgendwo zwischen deinem Browser und ihrem wurde ein Leerzeichen zu %20, ein Ampersand verschwand oder ein Pluszeichen verwandelte sich in etwas völlig anderes.

URL-Kodierung existiert, weil URLs nur bestimmte Zeichen enthalten können. Alles andere muss übersetzt werden.

Das Problem mit Sonderzeichen

URLs wurden in den frühen Internet-Tagen mit einem begrenzten Zeichensatz entworfen. Diese sind sicher:

A-Z a-z 0-9 - _ . ~

Alles andere? Potenziell problematisch.

Leerzeichen werden zu %20 oder + je nach Kontext. Eine URL mit einem wörtlichen Leerzeichen bricht.

Ampersands (&) trennen Query-Parameter. Wenn deine Daten ein Ampersand enthalten, denkt der URL-Parser, es beginnt ein neuer Parameter.

Fragezeichen (?) signalisieren den Beginn von Query-Strings. Eins in deinen Daten verwirrt alles.

Möchten Sie es selbst ausprobieren?URL kodieren

Wann Kodierung automatisch passiert

Browser kodieren URLs, wenn du sie tippst. Deshalb kannst du „new york restaurants" in Google einfügen und es funktioniert.

Aber automatisierte Systeme tun das oft nicht. APIs, Skripte, E-Mail-Clients – sie könnten deine URL genau so weitergeben, wie geschrieben. Wenn sie unsichere Zeichen enthält, bricht sie.

Die Doppel-Kodierungs-Falle

Hier wird es nervig.

Du kodierst eine URL. Dann legst du sie in eine andere URL als Parameter. Das System kodiert sie erneut. Jetzt wird %20 zu %2520.

Beim Dekodieren bekommst du %20 statt eines Leerzeichens.

Das passiert ständig mit Redirect-URLs, Tracking-Parametern und OAuth-Callbacks. Wenn deine URL verstümmelt mit Extra-Prozentzeichen aussieht, prüfe auf Doppel-Kodierung.

Häufige Kodierungs-Fehler

Die gesamte URL kodieren. Tu es nicht. Kodiere nur die Werte, nicht die Struktur. https:// sollte nicht zu https%3A%2F%2F werden.

Das Pluszeichen vergessen. In Query-Strings bedeutet + Leerzeichen. Wenn deine Daten ein wörtliches Pluszeichen haben, braucht es Kodierung oder es verschwindet.

Annehmen, Kodierung sei idempotent. Einen bereits kodierten String zu kodieren produziert andere Ausgabe. Prüfe, ob etwas kodiert ist, bevor du es kodierst.

Praktische Beispiele

Eine Such-Anfrage mit Leerzeichen:

Vorher: https://example.com/search?q=new york pizza
Nachher: https://example.com/search?q=new%20york%20pizza

Eine Callback-URL als Parameter:

callback = https://mysite.com/auth?token=abc
Kodiert:   https%3A%2F%2Fmysite.com%2Fauth%3Ftoken%3Dabc

Eine E-Mail-Adresse in einer URL:

Vorher: user+tag@example.com
Nachher: user%2Btag%40example.com

URL-Probleme debuggen

Prüfe die tatsächliche Anfrage. Browser-Dev-Tools zeigen dir, was gesendet wird. Vergleiche mit dem, was du erwartet hast.

Dekodiere und inspiziere. Wenn eine URL nicht funktioniert, dekodiere sie, um zu sehen, was der Server tatsächlich empfängt.

Teste mit Sonderzeichen. Schließe Leerzeichen, Ampersands und Pluszeichen in deine Testdaten ein. Wenn es mit „test" funktioniert, aber mit „test & verify" scheitert, hast du ein Kodierungsproblem.


URL-Kodierung ist eines dieser Dinge, die unsichtbar funktionieren, bis sie es nicht tun. Die Regeln zu verstehen hilft dir, schneller zu debuggen, wenn URLs mysteriös brechen.