Co je to internacionalizovaný doménový název (IDN)?
Podle Mezinárodní telekomunikační unie (ITU) používá internet více než tři miliardy lidí, a to stále častěji ve svém rodném jazyce. Tato změna byla částečně způsobena zavedením mezinárodních doménových jmen v roce 2003. Vysvětlíme vám, jak domény IDN fungují.
Co je to internacionalizovaný doménový název (IDN)?
IETF (Internet Engineering Task Force) označuje IDN jako doménová jména, která obsahují speciální znaky, které nejsou součástí latinské abecedy, jako jsou přehlásky nebo znaky z jiných abeced. Systém doménových jmen (DNS), který je zodpovědný za překlad URL adres do IP adres, však tato doménová jména nerozumí. DNS je založen na omezené standardní znakové sadě ASCII.
Aby byly IDN srozumitelné pro DNS i další internetové protokoly, byl v roce 2003 vytvořen internetový standard Internationalising Domain Names in Applications (IDNA). Ten definuje standardizovaný překlad z Unicode do ASCII, čímž umožňuje použití znaků mimo ASCII v doménových jménech.
Jak funguje IDNA?
Velká část infrastruktury internetu podporuje pouze znakovou sadu ASCII. Aby bylo možné zpracovávat mezinárodní doménová jména, je každé IDN dostupné v Unicode převedeno do řetězce ACE, který je založen na ASCII. Následně se zobrazí URL adresy obsahující znaky s diakritikou nebo přehláskami. Server naopak pokračuje ve zpracování adres jako kompatibilních s ASCII. Tento postup je specifikován v internetovém standardu IDNA2003 a v revizi IDNA2008, která byla schválena v roce 2010. Překlad z Unicode do ASCII probíhá na straně klienta (v prohlížeči, e-mailovém programu atd.) a je založen na standardizovaném kódovacím procesu zvaném Punycode.
Punycode
Standardizovaný Punycode RFC 3492 byl vyvinut pro jasné zobrazení řetězců znaků Unicode jako symbolů ASCII bez ztráty kvality. Všechny znaky mimo ASCII jsou z doménového jména odstraněny, zakódovány a odděleny pomlčkou. Tato sekvence kódu obsahuje informace o daném symbolu Unicode a také o jeho pozici v doménovém jméně. Každý takto vytvořený řetězec ACE je navíc označen předponou xn–. To čtenáři objasňuje, že se jedná o IDN, který byl zakódován podle standardů IDNA a Punycode. Podrobné vysvětlení procesu kódování a několik příkladů najdete v našem článku o Punycode.
Pomocí online převaděče domén IDN můžete převést IDN na odpovídající řetězce ACE pomocí Punycode.
Rozdíly mezi IDNA2003 a IDNA2008
V původním postupu z roku 2003 byly internacionalizované URL adresy před kódováním Punycode normalizovány pomocí metody nameprep. Tato metoda měnila velká písmena na malá, odstraňovala řídicí znaky a převáděla ekvivalentní znaky do jednotné podoby. Nameprep byl z tohoto procesu odstraněn, když byl zaveden IDNA2008. Nyní IDNA nestanoví žádnou normalizaci. Místo toho doporučuje algoritmus, který převádí velká písmena na malá.
Tato úprava vyhovuje také uživatelům v německy mluvících zemích, protože znak Unicode „ß“, který je v Německu běžný, byl původně podle IDNA2003 definován jako ekvivalent „ss“. Domény jako www.fußball-ergebnisse.de byly proto v procesu nameprep automaticky normalizovány na www.fussball-ergebnisse.de. Od zavedení IDNA2008 tomu tak již není. Od roku 2010 je „ß“ správně interpretováno jako „malé latinské písmeno ostré s“ a může být registrováno jako součást domény IDN.
Kromě toho přibližně 8 000 znaků, které byly možné v doménových jménech podle IDNA2003, již není podporováno podle IDNA2008. Čtyři znaky včetně „ß“ jsou po revizi standardu interpretovány odlišně. Podrobné informace o rozdílech mezi IDNA2003 a IDNA2008 naleznete v technické normě Unicode č. 46. Následující tabulka obsahuje shrnutí hlavních rozdílů:
| IDNA2003 | IDNA2008 |
|---|---|
| Je vyžadován postup Nameprep | Není specifikována normalizace |
| Platné pro Unicode 3.2 | Platí pro Unicode verze od 5.2 výše |
| Přísná pravidla pro fonty psané zprava doleva | Jasnější pravidla pro fonty psané zprava doleva |
| Velká a malá písmena jsou považována za samostatné znaky | Velká písmena se převádějí na malá |
| Mnoho symbolů je zakázáno, např. grafické symboly, které nepatří do žádného abecedního systému, stejně jako některé interpunkční znaménka | |
| „Přemapování“ bylo odstraněno z některých znaků Unicode, protože by mohlo vést k nesrovnalostem |
Jaké problémy jsou spojené s IDN?
V současné době by všechny běžné internetové programy měly být schopny rozumět IDN. Někdy však dochází k problémům s internacionalizovanými doménovými jmény, protože přechod z IDNA2003 na IDNA2008 ještě nebyl konzistentně implementován. Jedním z příkladů, který je pro němčinu problematický, je odlišný výklad znaku „ß“. Jelikož IDNA2003 povinně převádí „ß“ na „ss“, speciální domény ß, které lze registrovat podle IDNA2008, často nelze najít v systémech, které provádějí převod podle zastaralého standardu. Místo toho jsou uživatelé přesměrováni na odpovídající doménu obsahující „ss“. Tento problém lze obejít tak, že provozovatelé webových stránek zaregistrují obě varianty a pomocí přesměrování domény přesměrují druhou doménu na preferované hláskování.