Что такое IDN

IDN (англ. Internationalized Domain Names — интернационализованные доменные имена) — это доменные имена, которые содержат символы национальных алфавитов, например, президент.рф.

К IDN относятся как адреса с нелатинскими буквами на традиционных доменах верхнего уровня, так и нелатинские домены — домены верхнего уровня, составленные из букв нелатинских алфавитов планеты: кириллица, арабский алфавит и др. Однако, IDN не ограничивается поддержкой нелатинских письменностей. Следует также учитывать, что латинизированный интернет опирается на английскую версию латиницы, которая сильно отличается от богатых диакритиками и дополнительными буквами других латинизированных языков мира (среди них, к примеру, выделяется и самый распространённый в качестве родного язык использующий латиницу — испанский, имеющий особые символы Ñ (латиница)).

IDN домены также существуют в крупных международных доменных зонах, например, .COM, .NET, .TEL, .NAME, .ORG. 

Чтобы можно было не менять инфраструктуру DNS, было предложено преобразовывать имена, содержащих символы национальных алфавитов, в слова, состоящие только из допустимых ранее символов ASCII, причём делать это в клиентских приложениях. Таким образом, для поддержки IDN достаточно, чтобы их понимал браузер пользователя. Он должен уметь переводить их в символьную кодировку Punycode, позволяющую представить любые символы Unicode с помощью разрешённого ранее набора символов ASCII. Чтобы в таком представлении IDN нельзя было спутать с обычными доменными именами, они начинаются со специального префикса «xn--», например, «xn--abc.com» — IDN в Punycode-представлении, а «abc.com» — обычное доменное имя. Фактически интернационализованные доменные имена являются псевдонимами для имён начинающихся с «xn--».

Строка «xn--e1afmkfd.xn--80akhbyknj4f» демонстрирует Punycode-представление для реально существующего IDN «пример.испытание»: http://пример.испытание/. В базах DNS-серверов хранится только Punycode-представление, а в браузере можно вводить как то, так и другое. В браузерах, не поддерживающих IDN, удастся использовать только Punycode-представления IDN.