Mi az a nemzetköziesített domainnév (IDN)?
A Nemzetközi Távközlési Unió (ITU) szerint több mint három milliárd ember használja a világhálót, és egyre többen anyanyelvükön. Ez a változás részben a nemzetközi domainnevek 2003-as bevezetésének köszönhető. Elmagyarázzuk, hogyan működnek az IDN-domainnevek.
Mi az a nemzetköziesített domainnév (IDN)?
Az IETF (Internet Engineering Task Force) az IDN-eket olyan domainneveknek tekinti, amelyek a latin ábécében nem szereplő speciális karaktereket tartalmaznak, például umlautokat vagy más ábécékből származó karaktereket. Azonban a Domain Name System (DNS), amely az URL-ek IP-címekké történő átalakításáért felelős, nem tudja értelmezni ezeket a domainneveket. A DNS a korlátozott szabványos karakterkészleten, az ASCII-n alapul.
Annak érdekében, hogy az IDN-ek a DNS és más internetes protokollok számára is érthetőek legyenek, 2003-ban létrehozták az IDNA ( Internationalising Domain Names in Applications ) internetes szabványt. Ez meghatározza az Unicode és az ASCII közötti szabványosított átalakítást, lehetővé téve ezzel a nem ASCII karakterek használatát a domainnevekben.
Hogyan működik az IDNA?
Az internet infrastruktúrájának nagy része csak az ASCII karakterkészletet támogatja. Annak érdekében, hogy a nemzetközi domainnevek feldolgozhatók legyenek, minden Unicode-ban elérhető IDN-t ASCII-alapú ACE-karaktersorozatra fordítanak. Ezt követően megjelennek az ékezetes vagy umlaut karaktereket tartalmazó URL-ek. A szerver viszont továbbra is ASCII-kompatibilis címként kezeli a címeket. Ez az eljárás az IDNA2003 internetes szabványban és az IDNA2008 felülvizsgálatban van meghatározva, amelyet 2010-ben hagytak jóvá. Az Unicode-ból ASCII-ba való átalakítás a kliens oldalon (böngészőben, e-mail programban stb.) történik, és egy Punycode nevű szabványosított kódolási eljáráson alapul.
Punycode
Az RFC 3492 szabványosított Punycode-ot azért fejlesztették ki, hogy az Unicode karakterláncokat minőségromlás nélkül, ASCII szimbólumokként lehessen megjeleníteni. Az összes nem ASCII karaktert eltávolítják a domain névből, kódolják és kötőjellel választják el egymástól. Ez a kódsorozat tartalmazza az adott Unicode szimbólumra vonatkozó információkat, valamint annak helyét a domain névben. Ezenkívül minden ilyen módon létrehozott ACE-karakterlánc xn– előtaggal van ellátva. Ez egyértelművé teszi az olvasó számára, hogy a karakterlánc egy IDNA és Punycode szabványok szerint kódolt IDN. A kódolási folyamat részletes leírását és néhány példát a Punycode-ról szóló cikkünkben talál.
Az online IDN domain konverter segítségével az IDN-eket Punycode segítségével a megfelelő ACE karakterláncokká konvertálhatja.
Az IDNA2003 és az IDNA2008 közötti különbségek
Az eredeti 2003-as eljárás során a nemzetköziesített URL-eket a Punycode kódolás előtt a nameprep módszerrel normalizálták. Ez a módszer a nagybetűket kisbetűkké alakította, eltávolította a vezérlő karaktereket és az egyenértékű karaktereket egységes formába alakította át. Az IDNA2008 bevezetésekor a nameprep-et eltávolították ebből a folyamatból. Jelenleg az IDNA nem ír elő semmilyen normalizálást. Ehelyett egy algoritmust ajánl, amely a nagybetűket kisbetűkké alakítja.
Ez az alkalmazkodás a német nyelvterületen élő felhasználóknak is kedvez, mivel az Unicode „ß” karakter, amely Németországban gyakori, eredetileg az IDNA2003 szerint az „ss” karakternek megfelelőként volt definiálva. Az olyan domainnevek, mint például www.fußball-ergebnisse.de, ezért a nameprep folyamat során automatikusan www.fussball-ergebnisse.de lettek normalizálva. Az IDNA2008 bevezetése óta ez már nem így van. 2010 óta a „ß” karaktert helyesen „latin kisbetűs éles s”-ként értelmezik, és IDN domain név részeként regisztrálható.
Ezenkívül az IDNA2003 szerint domainnevekben használható mintegy 8000 karakter az IDNA2008 szerint már nem támogatott. Négy karakter, köztük a „ß” is, a szabvány felülvizsgálata óta másképp értelmezhető. Az IDNA2003 és az IDNA2008 közötti különbségekről részletesebben az Unicode Technical Standard #46 szabványban olvashat. A következő táblázat összefoglalja a főbb különbségeket:
| IDNA2003 | IDNA2008 |
|---|---|
| Nameprep eljárás szükséges | Nincs megadva normalizálás |
| Érvényes Unicode 3.2 esetén | Érvényes Unicode 5.2-től kezdődő verziókra |
| Szigorú szabályok a jobbról balra író betűtípusok esetében | Egyértelműbb szabályok a jobbról balra író betűtípusokhoz |
| A nagy- és kisbetűk külön karakternek számítanak | A nagybetűk kisbetűkké alakulnak |
| Számos szimbólum használata tilos, pl. az ábécékhez nem tartozó grafikus szimbólumok, valamint egyes írásjelek | |
| Az „átrendezés” eltávolítása egyes Unicode karakterekből, mivel ez szabálytalanságokhoz vezethet |
Milyen problémák vannak az IDN-ekkel?
Mára már minden általános internetes programnak képesnek kell lennie az IDN értelmezésére. Azonban néha problémák merülnek fel a nemzetköziesített domainnevekkel, mert az IDNA2003-ról az IDNA2008-ra való átállás még nem történt meg mindenhol. A német nyelv esetében problémát jelent például a „ß” eltérő értelmezése. Mivel az IDNA2003 kötelezően „ß”-t „ss”-re konvertál, az IDNA2008 szerint regisztrálható speciális ß domainnevek gyakran nem találhatók meg az elavult szabvány szerint konvertáló rendszerekben. Ehelyett a felhasználókat a „ss”-t tartalmazó megfelelő domainre irányítják. Ezt a problémát a weboldal üzemeltetői úgy kerülhetik el, hogy mindkét változatot regisztrálják, és a második domainnevet domainátirányítással a prioritást élvező írásmódra irányítják át.