IDN
Hasta 2003, los nombres de dominio solo podían consistir en el alfabeto latino, números del 0 al 9 y guiones. Estas medidas se explican por el hecho de que el Sistema de Nombres de Dominio se construyó con un teclado en inglés y no era realmente adecuado para un proyecto global como Internet.
Para remediar la situación, se introdujo un sistema llamado Internacionalización de Nombres de Dominio (IDN). El propósito de este mecanismo era definir una traducción estandarizada de Unicode a ASCII (Código Estándar Americano para el Intercambio de Información) para que los caracteres de todos los alfabetos conocidos en el mundo pudieran mostrarse en los dominios de Internet.
¿Cómo funciona?
La mayor parte de la infraestructura de Internet es compatible solo con el conjunto de caracteres ASCII. Para asegurarse de que estos nombres internacionalizados puedan ser procesados, cada IDN disponible en Unicode puede convertirse en una cadena ACE. Esta cadena se basa en el Código Estándar Americano para el Intercambio de Información (ASCII). Posteriormente, las URL que utilizan signos diacríticos o diéresis se muestran como deben. Y el servidor, a su vez, continúa procesando la dirección como compatible con ASCII. Estos procesos se describen en los memorandos IDNA2003 e IDNA2008. La conversión de Unicode a ASCII se ejecuta en el lado del cliente y se basa en los procesos de codificación estandarizados Punycode.
Las diferencias entre IDN2003 e IDNA
El proceso original de 2003 implicaba la normalización de las URL internacionalizadas antes del proceso de codificación Punycode utilizando el método nameprep. Este método cambiaba las letras mayúsculas a minúsculas, eliminaba los caracteres no imprimibles y unificaba los caracteres equivalentes. El nameprep se eliminó de este proceso tan pronto como se introdujo IDNA2008. A partir de ahora, IDNA no especifica ninguna normalización, sino que recomienda un algoritmo que convierte las letras mayúsculas en minúsculas.