Sprache : en | de | fr | es
Zurück zu den Blogs

Was ist URL-Kodierung und wozu wird sie verwendet?

Was bedeutet eine URL mit %20?

Wenn Sie jemals einen Link kopiert und seltsame Sequenzen wie %20, %3A oder %2F bemerkt haben, sehen Sie kodierte Zeichen. Das häufigste davon ist %20, das ein Leerzeichen darstellt. Zu verstehen, was %20 in einer URL bedeutet, ist für Entwickler, SEO-Spezialisten und alle, die mit Webtechnologien arbeiten, entscheidend.

Dieser Artikel erklärt, wie URL-Encoding funktioniert, warum %20 in Webadressen erscheint und wie man damit in realen Szenarien korrekt umgeht.

Was bedeutet %20 in einer URL: Die technische Erklärung

In URLs sind Leerzeichen als direkte Zeichen nicht erlaubt. Das Web verwendet einen Standard namens Percent-Encoding (auch als URL-Encoding bekannt), um Sonderzeichen darzustellen.

%20 ist die hexadezimale Darstellung des ASCII-Leerzeichens.

Warum 20?

  • Leerzeichen in ASCII = Dezimal 32
  • 32 im Hexadezimalsystem = 20
  • Percent-Encoding-Format = % + Hexwert

Also:

Leerzeichen → ASCII 32 → Hex 20 → %20

Das ist die gesamte Logik dahinter, warum %20 ein Leerzeichen ist.

Beispiel

Originaltext:

https://example.com/my page.html

Kodierte Version:

https://example.com/my%20page.html

Browser wandeln Leerzeichen automatisch in das %20 URL-Encode-Format um, damit die Adresse gültig ist.

URL Encoding %20: Warum es existiert

URLs müssen strengen Standards folgen, die in RFC 3986 definiert sind. Nur bestimmte Zeichen sind direkt erlaubt. Andere müssen kodiert werden.

Zeichen, die typischerweise kodiert werden müssen:

  • Leerzeichen
  • ?
  • &
  • =
  • %
  • Nicht-ASCII-Zeichen (z. B. é, ü)

Beispiel: Query-Parameter

Unkodiert (ungültig):

https://example.com/search?q=red shoes

Kodiert:

https://example.com/search?q=red%20shoes

Ohne Kodierung kann der Browser die URL-Struktur nicht korrekt interpretieren.

%20 in Webadressen im Vergleich zu anderen kodierten Zeichen

Während %20 am häufigsten vorkommt, werden viele andere Zeichen auf ähnliche Weise kodiert.

Charakter

ASCII (Dez)

Hex

Verschlüsselt

Raum

32

20

%20

!

33

21

%21

"

34

22

%22

#

35

23

%23

&

38

26

%26

/

47

2F

%2F

Das Verständnis dieser Tabelle hilft beim manuellen Debuggen von URLs.

Bedeutung von %20 in URL-Pfaden vs. Query-Strings

Das Verhalten der Kodierung unterscheidet sich leicht je nachdem, wo sie erscheint.

1. Pfadsegment

https://example.com/files/My%20Document.pdf

Hier steht %20 für ein tatsächliches Leerzeichen im Dateinamen.

2. Query-Parameter

https://example.com/search?keyword=machine%20learning

Hier steht es für ein Leerzeichen innerhalb eines Query-Werts.

3. Fragment-Identifikatoren

https://example.com/page#Section%202

Auch Anker können kodierte Leerzeichen enthalten.

HTTP %20 und Server-Interpretation

Server dekodieren percent-kodierte Werte automatisch, bevor sie Anfragen verarbeiten.

Zum Beispiel:

GET /products/Red%20Shoes HTTP/1.1

Der Server erhält:

/products/Red Shoes

Dieser Dekodierungsschritt erfolgt:

  1. Der Browser kodiert unsichere Zeichen.
  2. Die HTTP-Anfrage wird gesendet.
  3. Der Server dekodiert.
  4. Die Anwendung verarbeitet die lesbare Zeichenkette.

Deshalb sehen Entwickler %20 innerhalb der Anwendungslogik selten, außer wenn rohe URLs protokolliert werden.

Praktische Entwicklerbeispiele

Beispiel 1: JavaScript-Kodierung

encodeURIComponent(“red shoes”);

Ausgabe:

red%20shoes

Beispiel 2: Dekodierung in JavaScript

decodeURIComponent(“red%20shoes”);

Output:

red shoes

Beispiel 3: Python

import urllib.parse

encoded = urllib.parse.quote(“data science”)

print(encoded)

Ausgabe:

data%20science

Entschlüsselung:

urllib.parse.unquote("data%20science")

Wann %20 nicht verwendet werden sollte

In Query-Strings können Leerzeichen manchmal als + erscheinen.

Beispiel:

https://example.com/search?q=red+shoes

Bei Formularübermittlungen mit application/x-www-form-urlencoded wird ein Leerzeichen als + kodiert, nicht als %20.

Wichtiger Unterschied:

  • %20 → standardmäßige Percent-Encoding-Kodierung
    • → Sonderfall für Formulardaten

Diese Unterscheidung ist beim Backend-Parsing wichtig.

SEO und %20 in URLs

Suchmaschinen können kodierte Leerzeichen korrekt verarbeiten. Best Practices empfehlen jedoch:

  • Leerzeichen in URLs vollständig vermeiden.
  • Stattdessen Bindestriche (-) verwenden.

Bevorzugt:

https://example.com/red-shoes

Statt:

https://example.com/red%20shoes

Warum?

  • Sauberere Struktur
  • Bessere Lesbarkeit
  • Weniger Kodierungsschritte
  • Geringeres Risiko von Copy-Paste-Fehlern

Häufige Fehler und Debugging-Tipps

1. Doppelte Kodierung

Wrong:

red%2520shoes

Hier steht %25 für %, was bedeutet, dass der String zweimal kodiert wurde.

2. Manuelle URL-Erstellung

Vermeiden Sie es, URLs durch String-Konkatenation zu erstellen:

“/search?q=” + userInput

Stattdessen:

“/search?q=” + encodeURIComponent(userInput)

3. Falsch interpretierte kodierte Schrägstriche

%2F steht für /. Wenn es falsch dekodiert wird, kann sich die Pfadhierarchie ändern.

Zusammenfassung: Warum %20 in URLs erscheint

Kurz zusammengefasst:

  • %20 ist ein Leerzeichen
  • Es ist Teil des Percent-Encoding
  • Es sorgt dafür, dass URLs gültig und maschinenlesbar bleiben
  • Browser kodieren automatisch
  • Server dekodieren automatisch
  • Es ist für eine sichere HTTP-Übertragung erforderlich

Das Verständnis von Kodierung ist besonders wichtig bei:

  • Debugging von APIs
  • Arbeit mit Redirects
  • Umgang mit nutzergenerierten Inhalten
  • Verwaltung von Datei-Downloads
  • Optimierung von URLs für SEO

Wann immer Sie %20 in einer Webadresse sehen, bedeutet das einfach, dass ein Leerzeichen für die Übertragung im Web sicher kodiert wurde.

Moderne Frameworks übernehmen dies automatisch, aber zu verstehen, wie es funktioniert, hilft, Kodierungsfehler, Sicherheitsprobleme und fehlerhafte Anfragen in Produktionssystemen zu vermeiden.