URL-Kodierung: Alles, was Sie wissen müssen

· 12 Min. Lesezeit

Inhaltsverzeichnis

URL-Kodierung verstehen

URL-Kodierung, auch als Prozent-Kodierung bekannt, ist ein grundlegender Mechanismus zur Gewährleistung einer zuverlässigen Datenübertragung über das Internet. Sie wandelt Zeichen, die in URLs nicht zulässig sind, in ein Format um, das sicher übertragen und von Webbrowsern, Servern und anderer Internet-Infrastruktur interpretiert werden kann.

Im Kern adressiert die URL-Kodierung ein einfaches Problem: URLs können nur eine begrenzte Anzahl von Zeichen aus dem ASCII-Zeichensatz enthalten. Wenn Sie Zeichen außerhalb dieses Satzes einschließen müssen – seien es Sonderzeichen, Leerzeichen oder nicht-lateinische Zeichen – müssen sie in ein universell anerkanntes Format kodiert werden.

Der Kodierungsprozess ersetzt problematische Zeichen durch ein Prozentzeichen (%), gefolgt von zwei hexadezimalen Ziffern, die den ASCII- oder UTF-8-Code des Zeichens darstellen. Dies stellt sicher, dass jede Komponente Ihrer URL genau wie beabsichtigt übertragen wird, ohne Fehlinterpretation oder Datenverlust.

Schneller Tipp: Verwenden Sie unser URL-Encoder & Decoder Tool, um jede URL-Zeichenfolge sofort zu kodieren oder zu dekodieren, ohne Code zu schreiben.

Warum URL-Kodierung notwendig ist

Die Notwendigkeit der URL-Kodierung ergibt sich aus den ursprünglichen Designbeschränkungen des Internets und der in RFC 3986 definierten URL-Spezifikation. URLs wurden so konzipiert, dass sie mit einem begrenzten Zeichensatz arbeiten, um die Kompatibilität über verschiedene Systeme, Protokolle und geografische Regionen hinweg zu gewährleisten.

Ohne URL-Kodierung würden mehrere kritische Probleme auftreten:

Betrachten Sie eine Suchanfrage nach "Katzen & Hunde" in einer URL. Ohne Kodierung würde das Und-Zeichen als Parametertrennzeichen interpretiert, was möglicherweise Ihre Anfrage in zwei separate Parameter aufteilt. Die URL-Kodierung wandelt dies in Katzen%20%26%20Hunde um und bewahrt die beabsichtigte Bedeutung.

Die ASCII-Einschränkung

URLs basieren auf dem ASCII-Zeichensatz, der nur 128 Zeichen umfasst. Von diesen kann nur eine Teilmenge – bekannt als "nicht reservierte Zeichen" – ohne Kodierung in URLs erscheinen. Diese nicht reservierten Zeichen umfassen:

Alles andere erfordert eine Kodierung, um eine ordnungsgemäße Übertragung und Interpretation über das Internet zu gewährleisten.

Wie URL-Kodierung funktioniert

Der URL-Kodierungsprozess folgt einem einfachen Algorithmus, der Zeichen in ihre prozent-kodierten Äquivalente umwandelt. Das Verständnis dieses Prozesses hilft Ihnen, Kodierungsprobleme zu beheben und robustere Webanwendungen zu schreiben.

Der Kodierungsalgorithmus

Wenn ein Zeichen kodiert werden muss, funktioniert der Prozess wie folgt:

  1. Zeichen identifizieren: Bestimmen Sie, welches Zeichen basierend auf der URL-Komponente und den Kodierungsregeln kodiert werden muss.
  2. Byte-Wert ermitteln: Konvertieren Sie das Zeichen in seine Byte-Darstellung unter Verwendung der UTF-8-Kodierung (oder ASCII für Basiszeichen).
  3. In Hexadezimal umwandeln: Drücken Sie jedes Byte als zwei hexadezimale Ziffern aus.
  4. Prozentpräfix hinzufügen: Stellen Sie jedem hexadezimalen Paar ein Prozentzeichen (%) voran.

Zum Beispiel hat das Leerzeichen einen ASCII-Wert von 32 (dezimal) oder 20 (hexadezimal). Wenn es kodiert wird, wird es zu %20. Das At-Symbol (@) hat einen ASCII-Wert von 64 (dezimal) oder 40 (hexadezimal), also wird es zu %40 kodiert.

UTF-8 Mehrbyte-Kodierung

Für Zeichen außerhalb des ASCII-Bereichs erzeugt die UTF-8-Kodierung mehrere Bytes, von denen jedes prozent-kodiert wird. Das Emoji "😀" (grinsendes Gesicht) wird in UTF-8 als vier Bytes kodiert: F0 9F 98 80. In einer URL wird dies zu %F0%9F%98%80.

Diese Mehrbyte-Kodierung stellt sicher, dass Zeichen aus jeder Sprache oder jedem Symbolsatz sicher in URLs übertragen werden können, was das Web wirklich international macht.

Profi-Tipp: Verwenden Sie beim Debuggen von URL-Kodierungsproblemen die Entwicklertools Ihres Browsers, um die tatsächlich kodierte URL zu überprüfen, die gesendet wird. Die Registerkarte "Netzwerk" zeigt die rohe kodierte Anfrage, die Kodierungsprobleme aufdecken kann.

Zeichen, die kodiert werden müssen

Nicht alle Zeichen erfordern in allen Kontexten eine Kodierung, aber das Verständnis, welche Zeichen wann kodiert werden müssen, ist für den Aufbau zuverlässiger Webanwendungen unerlässlich. Die Kodierungsanforderungen variieren je nachdem, mit welchem Teil der URL Sie arbeiten.

Reservierte Zeichen

Reservierte Zeichen haben eine besondere Bedeutung in der URL-Syntax und müssen kodiert werden, wenn sie als Daten und nicht als Trennzeichen verwendet werden. Zu diesen Zeichen gehören:

Zeichen Zweck in URLs Kodierte Form
: Trennt Schema und Host, Port-Trennzeichen %3A
/ Pfadsegment-Trennzeichen %2F
? Markiert Beginn der Abfragezeichenfolge %3F
# Markiert Beginn des Fragment-Identifikators %23
[ ] IPv6-Adress-Trennzeichen %5B %5D
@ Trennt Anmeldedaten vom Host %40
! $ & ' ( ) * + , ; = Unter-Trennzeichen für verschiedene Zwecke %21 %24 %26 %27 %28 %29 %2A %2B %2C %3B %3D

Unsichere Zeichen

Bestimmte Zeichen gelten als unsicher, weil sie während der Übertragung modifiziert oder falsch interpretiert werden können. Diese erfordern immer eine Kodierung:

Zeichen Warum es unsicher ist Kodierte Form
Leerzeichen Kann entfernt oder in + umgewandelt werden %20
" Wird verwendet, um URLs in HTML zu begrenzen %22
< > Wird in HTML-Tags verwendet, kann gefiltert werden %3C %3E
% Kodierungs-Trennzeichen selbst %25
\ Pfadtrennzeichen auf einigen Systemen %5C
^ ` { } | Nicht universell unterstützt %5E %60 %7B %7D %7C

Kontextabhängige Kodierung

Die Kodierungsanforderungen unterscheiden sich je nachdem, mit welcher URL-Komponente Sie arbeiten. Ein Zeichen, das in einem Kontext sicher ist, kann in einem anderen eine Kodierung erfordern:

Häufige Anwendungsfälle für URL-Kodierung

URL-Kodierung erscheint in zahlreichen realen Szenarien. Das Verständnis dieser Anwendungsfälle hilft Ihnen zu erkennen, wann und wie Sie die Kodierung in Ihren eigenen Projekten anwenden sollten.

Suchanfragen

Suchmaschinen verlassen sich stark auf URL-Kodierung, um Benutzeranfragen zu verarbeiten. Wenn Sie bei Google nach "wie backt man einen Kuchen?" suchen, wird die URL zu etwas wie:

https://www.google.com/search?q=wie+backt+man+einen+Kuchen%3F

Beachten Sie, dass Leerzeichen als Pluszeichen kodiert werden (eine alternative Kodierung für Leerzeichen in Abfragezeichenfolgen) und das Fragezeichen als %3F kodiert wird, um es vom Abfragezeichenfolgen-Trennzeichen zu unterscheiden.

Formularübermittlungen

Wenn HTML-Formulare mit der GET-Methode übermittelt werden, werden Formulardaten kodiert und an die URL angehängt. Betrachten Sie ein Anmeldeformular mit Benutzername- und Passwortfeldern:

https://example.com/login?username=john.doe%40example.com&password=P%40ssw0rd%21

Die E-Mail-Adresse und Sonderzeichen im Passwort werden ordnungsgemäß kodiert, um Interpretationsprobleme zu vermeiden.

Sicherheitshinweis: Senden Sie niemals sensible Daten wie Passwörter in URL-Parametern. Dieses Beispiel dient nur zur Veranschaulichung. Verwenden Sie immer POST-Anfragen mit HTTPS für die Authentifizierung.

API-Anfragen

RESTful-APIs enthalten oft Parameter in URLs, die eine Kodierung erfordern. Beim Filtern von Ergebnissen oder Übergeben komplexer Datenstrukturen stellt die ordnungsgemäße Kodierung sicher, dass die API genau das erhält, was Sie beabsichtigt haben:

https://api.example.com/users?filter=created_at>2024-01-01&sort=-name

Das Größer-als-Symbol im Filterparameter muss als %3E kodiert werden, um Verwechslungen mit HTML-Entitäten oder anderen Interpretationen zu vermeiden.

Datei-Downloads

Beim Bereitstellen von Dateien mit nicht-ASCII-Namen stellt die URL-Kodierung sicher, dass der Dateiname korrekt übertragen wird:

https://example.com/downloads/Pr%C3%A9sentation%202024.pdf

Das akzentuierte "é" in "Présentation" wird als %C3%A9 (seine UTF-8-Darstellung) kodiert, sodass Benutzer weltweit die Datei unabhängig von der Zeichenkodierung ihres Systems herunterladen können.

Social-Media-Sharing

Social-Media-Plattformen verwenden URL-Kodierung beim Teilen von Links mit vorausgefülltem Text. Ein Twitter-Share-Link könnte so aussehen:

https://twitter.com/intent/tweet?text=Schauen%20Sie%20sich%20diesen%20Artikel%20an%21&url=https%3A%2F%2Fexample.com%2Farticle

Sowohl der Tweet-Text als auch die geteilte URL werden kodiert, um sicherzustellen, dass

We use cookies for analytics. By continuing, you agree to our Privacy Policy.