URL Encoding

 

URLs dürfen aus aktuellen und historischen technischen Gründen nur bestimmte Zeichen beinhalten. Das URL Encoding ermöglicht es, auch Spezial- oder reservierte Zeichen wie Leerschläge, Hash (#) oder Klammern in einer URL zu verwenden. So können auch komplexe Daten über eine URL versendet werden.

 

Der Aufbau einer URL

Eine URL darf aus den folgenden Bestandteilen bestehen:

http://nutzer:passwort@www.example.net:9999/index.html?param1=wert1&param2=wert2#hashwert
Protokoll - Benutzername - Passwort - Domain - Port - Datei - Parameter - Hashwert

In dieser Schreibweise dienen Zeichen wie : @ / ? = # und andere als Spezialzeichen und dürfen nicht beliebig verwendet werden. Um dies trotzdem zu ermöglichen, werden diese Zeichen in diesen Fällen URL encodiert.

 

Funktionsweise des URL Encoding

Das Prinzip des URL Encoding beruht auf der ASCII-Wertetabelle. In dieser Tabelle besitzt jedes erlaubte Zeichen einen gewissen Wert. So ist der Wert des grossen A die 65 oder der Wert des Leerschlags die 32. Da dieser Wert eindeutig für ein bestimmtes Zeichen ist, kann so jedes beliebige Zeichen einer URL auch als encodierte Form geschrieben werden. 

Für das URL Encoding wird die hexadezimale Schreibweise verwendet. Dies ermöglicht es, jedes Encoding als Zeichenkette mit der Länge 3 zu schreiben. Dazu wird der dezimale ASCII-Wert in seine hexadezimale Form umgeschrieben:
Aus 65 für das grosse A wird 41 (4*16^1 + 1 * 16^0) und aus 32 für den Leerschlag wird 20 (2*16^1 + 0*16^0). Das encodierte Zeichen wird durch das reservierte Zeichen % eingeleitet. 

Dies ergibt zusammen für das grosse A die Zeichenfolge %40 und für den Leerschlag %20.

 

Tabelle wichtiger URL Encoding

Die folgende Tabelle listet für die reservierten Zeichen und einige wichtige Sonderzeichen das entsprechende URL Encoding auf.

Zeichen

Leerschlag
!
"
#
$
%
&
'
(
)
*
+
,
-
.
/
:
;
<
=
>
?
@
 

Encoding

20%
21%
22%
23%
24%
25%
26%
27%
28%
29%
30%
31%
32%
33%
34%
35%
%3A
%3B
%3C
%3D
%3E
%3F
40%

Eine vollständige Liste aller in einer URL erlaubten Zeichen finden Sie unter w3schools.

Kategorie: Webentwicklung, Content Management System (CMS)