Warum URLs eine Sonderzeichenkodierung benötigen

URLs werden mithilfe des HTTP-Protokolls über Netzwerke übertragen. Die HTTP-Spezifikation (und ihr Vorgänger, die Internetprotokollstandards) beschränken URLs auf eine Teilmenge von US-ASCII-Zeichen – insbesondere Zeichen mit Bytewerten zwischen 0x21 und 0x7E.
Zeichen außerhalb dieses Bereichs – einschließlich Leerzeichen, Akzentzeichen (é, ñ, ü), chinesische/japanische/koreanische Zeichen und viele Symbole – sind in URLs ohne Codierung nicht sicher.
Warum speziell Leerzeichen? HTTP verwendet Leerzeichen als Trennzeichen zwischen der Methode, der URL und der Protokollversion in der Anforderungszeile:
GET /search?q=hello world HTTP/1.1Der Server sieht „hello“ als Ende der URL und „world“ als ungültigen Teil der HTTP-Versionszeichenfolge. Die URL ist defekt.
Die Lösung: Prozentkodierung (definiert in RFC 3986) wandelt unsichere Zeichen in eine sichere %XX-Notation um, wobei XX der hexadezimale Bytewert ist.
So funktioniert die prozentuale Kodierung


Jedes Zeichen in UTF-8 besteht aus einem bis vier Bytes. Die prozentuale Kodierung wandelt jedes Byte in % um, gefolgt von zwei hexadezimalen Ziffern:
| Charakter | UTF-8 Byte | Prozentkodiert |
|---|---|---|
| Leerzeichen | 0x20 | %20 |
| # | 0x23 | %23 |
| & | 0x26 | %26 |
| = | 0x3D | %3D |
| / | 0x2F | %2F |
| é | 0xC3 0xA9 | %C3%A9 |
| 中 | 0xE4 0xB8 0xAD | %E4%B8%AD |
Eine URL mit chinesischen Zeichen wie https://example.com/搜索 wird zu: https://example.com/%E6%90%9C%E7%B4%A2
Reservierte Charaktere vs. nicht reservierte Charaktere

Nicht reservierte Zeichen (diese niemals kodieren): A-Z a-z 0-9 - _ . ~ Diese sind in allen URL-Kontexten sicher und sollten immer unverschlüsselt erscheinen.
Reservierte Zeichen (kodiert bei Verwendung als Daten, nicht als Trennzeichen): : /? # [ ] @ ! $ & ' ( ) * + , ; = Diese Zeichen haben in URLs eine besondere Bedeutung. Codieren Sie sie, wenn sie als Literaldaten in einem Abfrageparameterwert erscheinen.
Beispiel – Suchanfrage-URL:
https://example.com/search?q=cats&dogs
Das ist nicht eindeutig – handelt es sich bei der Suchanfrage um „Katzen“ oder „Katzen und Hunde“? Mit Kodierung:
https://example.com/search?q=cats%26dogsJetzt wird das kaufmännische Und als Daten codiert, nicht als Abfrageparameter-Trennzeichen.
URLs auf ToolDolfen kodieren und dekodieren

- Öffnen Sie den URL Encoder & Decoder.
- So kodieren Sie: Fügen Sie eine URL oder URL-Komponente ein, die Sonderzeichen enthält. Klicken Sie auf „Kodieren“.
- So dekodieren Sie: Fügen Sie eine prozentkodierte URL oder Zeichenfolge ein, um das für Menschen lesbare Original anzuzeigen.
Das Tool verarbeitet sowohl vollständige URLs als auch URL-Komponenten (einzelne Abfrageparameterwerte). Bei der vollständigen URL-Kodierung werden nur nicht reservierte Zeichen kodiert; Für die Komponentenkodierung werden auch reservierte Zeichen kodiert.
Empfohlene Begleithandbücher
Entdecken Sie ergänzende Tutorials und Dienstprogramme aus diesem Themencluster, um Ihren digitalen Workflow zu verbessern: