Все статьи

Punycode: как домены с кириллицей работают в DNS

Домен .рф — первый в мире кириллический национальный домен верхнего уровня: он появился в 2010 году именно потому, что для всей инфраструктуры интернета годами не существовало способа обрабатывать нелатинские буквы в адресной строке напрямую. Punycode и стал тем механизмом, который сделал возможной регистрацию доменов вроде сайт.рф.

Как .рф превращается в ASCII

Домен верхнего уровня .рф в реальном DNS существует под именем xn--p1ai — это официальный, зарегистрированный ICANN punycode-эквивалент. Каждое кириллическое слово перед точкой кодируется отдельно: например, слово «сайт» превращается в xn--80aswg. В сумме получается технический адрес вида xn--80aswg.xn--p1ai, который и уходит в DNS-запрос, хотя пользователь видит только кириллицу в браузере.

Зачем нужна отдельная кодировка, а не просто UTF-8

DNS не заменили на UTF-8-совместимый протокол — вместо этого верхний уровень (резолверы, серверы имён) остался ASCII-only, а Punycode добавили как слой трансляции только на стороне клиента и регистратора. Поэтому кириллический домен физически не покидает браузер — в сеть всегда уходит его xn--форма.

Типичные сценарии использования

  • Понять, какой настоящий домен скрывается за строкой xn--..., присланной в письме или чате.
  • Подготовить кириллический домен для делегирования в регистраторе (некоторые панели до сих пор просят вводить именно punycode-форму).
  • Проверить сертификат или email-адрес, где используется IDN.

Гомоглифы: русская «а» вместо латинской

Кириллические «а», «е», «о», «р», «с», «х» неотличимы от латинских a, e, o, p, c, x в большинстве шрифтов — этим пользуются для фишинга, регистрируя домены вроде «аpple.com» с одной кириллической буквой. Из-за Punycode такой домен получает уникальный xn---код, но выглядит как настоящий бренд. Поэтому браузеры показывают подозрительные смешанные домены сразу в виде xn--..., а не в декодированном кириллическом виде.

Попробовать инструмент