Workshop Internet-Präsenz
Der Domänenname
- Zweck und Aufbau von Domänennamen
- Auflösung von Domänennamen
- Internationalisierung der Domänennamen
- Normalisierung des Namens mit dem Nameprep-Algorithmus
- Punycode
- Geeignete Browser
- Referenzen
Zweck und Aufbau von Domänennamen
Domänennamen dienen als „aussprechbarer“ Ersatz für IP-Adressen, z.B. www.uni-halle.de. Sie werden aber für die Nutzung im Internet immer mittels so genannter Domänennamenserver in IP-Adressen umgerechnet. Das Domain Name System (DNS) stellt somit einer der wichtigsten Dienste im Internet dar; bei dessen Ausfall sind die meisten Internetnutzer doch recht hilflos. Die Nutzung von Domänennamen ermöglicht aber auch die Änderung von IP-Adressen z.B. infolge eines Umzugs des Webservers, ohne dass davon der Domänenname selbst betroffen ist.
Hinter dem DNS verbirgt sich ein dezentrales, weltweit verteiltes Datenbanksystem. Es wurde 1983 von Paul Mockapetris entworfen und im RFC 882 beschrieben, später wurde die RFC 882 durch die RFCs 1034 und 1035 ersetzt.
Domänennamen besitzen ebenfalls wie IP-Adressen einen hierarchischen Aufbau. Sie sind Bestandteil des baumartigen Domänennamenraumes, die Verästelung führt auf Subdomains, die auch als Labels bezeichnet werden. Ein Domänenname besteht somit aus einer Einreihung derartiger Labels. Die Aulösung des Domänennamen erfolgt immer von rechts nach links, je weiter rechts ein Label im Namen steht, um so höher ist seine Hierarchieebene. Das erste Label (d.h. das rechte) stellt die so genannte Top-Level-Domäne dar. Das niederwertigste Label repräsentiert den entsprechenden Rechner.
Jedes einzelne Label bzw. Subdomäne kann maximal 63 alphanumerische Zeichen einschließlich dem Bindestrich umfassen, also die Ziffern 0 bis 9, die Kleinbuchstaben a bis z und das „-“. Großbuchstaben werden wie die entsprechenden Kleinbuchstaben behandelt. Jedes Label wird üblicherweise mit einem Punkt abgeschlossen, der letzte Punkt wird zumeist weggelassen, aber www.uni.halle.de. ist in dieser Form richtig. Der vollständige Domänenname darf maximal 255 Zeichen enthalten.
Auflösung von Domänennamen
Zur Auflösung der Domänennamen kommen zwei Programme zum Zuge:
- Die Domänennamenserver, die selbst auch hierarchisch strukturiert sind und Anfragen zur tieferen Ebene weiterreichen können. Die oberste Hierarchiebene wird durch die so genannten Root-Server gebildet.
- Der Resolver ruft die Informationen aus den Namenservern ab, er ist Bestandteil des Betriebssystems oder eines Anwendungsprogramms (z.B. des Browsers).
Internationalisierung der Domänennamen
Mit der Standardisierung des Unicodes bestand auch das Interesse, den vergrößerten Zeichenvorrat auch auf den Domänennamen anwenden zu können. Möglich wird dies durch die Verwendung des Standards „Internationalizing Domain Names in Applications“ (IDNA, RFC 3490). Der Standard ermöglicht die Weiternutzung des bestehenden Systems, die IDN werden durch Voranstellen des Präfixes xn-- kenntlich gemacht. Die Namen müssen, wie nachfolgend beschrieben, aber so umgerechnet werden, dass sie mit den herkömmlichen alphanumerischen Zeichen beschrieben werden können. Dies erfolgt in zwei Schritten:
- Normalisierung des Namens mit dem Nameprep-Algorithmus (RFC 3491)
- Abbildung des Unicode-Zeichensatzes auf den für Domänennamen vorgesehenen Zeichensatzes mittels Punycode (RFC 3492)
Normalisierung des Namens mit dem Nameprep-Algorithmus
Ziel der Normalisierung ist es, die im Unicode vorgesehenen Varianten für ein und dieselbe Bedeutung eines Lautes auf eine einheitliche Darstellung zu reduzieren. Dies betrifft u.a.
- Wandlung aller Großbuchstaben in Kleinbuchstaben.
- Auflösung aller Ligaturen. Dies betrifft auch die im Deutschen gebräuchliche Ligatur „ß“, die als „ss“ dargestellt wird. Dies ist auch der Grund, warum das Eszett nicht in einem Domänennamen verwendet werden kann.
- Buchstaben, die als Kombination aus Grundzeichen und Akzent dargestellt werden, werden in das entsprechende Einzelzeichen gewandelt.
- Festlegung einer einzelnen Schreibrichtung für ein Label (Subdomänennamen) für das Hebräische und Arabische.
- Weitere Regeln für andere Sprachen, z.B. Japanisch.
Punycode
Im zweiten Schritt erfolgt die Abbildung der verbliebenen Unicode-Zeichen auf die möglichen 36 alphanumerischen Zeichen a–z und 0–9. Hierzu werden nach dem IDNA-Präfix xn-- zuerst all die alphanumerischen Zeichen in ihrer realen Reihenfolge notiert, für die keine Wandlung notwenig ist. So wird aus müller zunächst xn--mller. Nach einem weiteren Bindestrich folgen nun die restlichen Buchstaben, und zwar in der Reihenfolge ihrer Kodenummer im Unicode-Zeichensatz.
Jeder gewandelte Zeichenkode enthält nun sowohl die Information über das kodierte Zeichen selbst und seine Position im Wort. Der erste Buchstabe wird absolut kodiert ( (Unicode-Position − 128) × (Anzahl bereits geschriebener Charakter + 1) + Zeichenpostion des vorausgehenden Zeichens ). Alle folgenden Zeichen werden relativ zum vorherigen Buchstaben und zur vorherigen Position kodiert. Somit ergibt sich in der Regel nur für das erste Zeichen eine große Zahl. Die ermittelten Zahlen für jedes einzelne Zeichen werden nun in eine „Zahl“ zur Basis 36 umgerechnet, es stehen ja die „Ziffern“ 0–9 und a–z zur Verfügung.
Mit einem Schwellenwert, der sich von Kodezeichen zu Kodezeichen ändern kann, kann man feststellen, ob eine Zahl bereits zu Ende ist, ohne kodieren zu müssen, wo die Zahl für ein Kodezeichen endet. Der nicht triviale Mechanismus samt einem Programmbeispiel sind im RFC 3492 beschrieben.
Zu guter Letzt wird aus müller.de xn--mller-kva.de. Enthält die Domäne kein Kodezeichen 0–9 bzw. a–z, folgen die Kodes gleich dem xn--, so wird aus россия.ru xn--h1alffa9f.ru.
Und natürlich darf das auch in die Adresszeile des Browsers so eingegeben werden… Und vom Internet Explorer abgesehen – braucht dies natürlich keiner.
Geeignete Browser
Die Umrechnung erfolgt im Browser selbst. Alle modernen Browser beherrschen dies bereits, nur der Internet Explorer (natürlich) nicht. Von der Firma VeriSign® wird aber ein geeignetes und kostenloses Plugin i-Nav™ angeboten (Aufruf der Seite muss aus dem Internet Explorer selbst erfolgen, die Installation erfolgt automatisch).
Die internationalisierten Domänennamen sind auch in E-Mails einsetzbar. Dies gilt jedoch nur für den Domänennamen hinter dem @-Symbol, nicht aber für den Adressaten selbst. Es bleibt also vorläufig bei juergen@müller.de.
Referenzen
- Generische Top-Level-Domänen (gTLD)
- Länder-Top-Level-Domänen (ccTLD, ISO 3166-1)
- Bögeholz, Harald: schöne-aussichten.de: Umlaute und Sonderzeichen in Domainnamen. c’t: Magazin für Computertechnik, 2004, Heft 3, S. 194–197.
- Domain Name System (wikipedia.org)
- Punycode Converter (BlueRider.com)
- i-Nav™ für Internet Explorer (VeriSign®)
- Ietf-imaa mailing list (Diskussion um internationale E-Mail-Adressen)
- RFC 882: Domain Names – Concepts and Facilities
- RFC 883: Domain Names – Implementation and Specification
- RFC 1034: Domain Names – Concepts and Facilities
- RFC 1035: Domain Names – Implementation and Specification
- RFC 3490: Domain Names – Internationalizing Domain Names in Applications (IDNA)
- RFC 3491: Domain Names – Nameprep: A Stringprep Profile for Internationalized Domain Names (IDN)
- RFC 3492: Domain Names – Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)