«Мой адрес не дом и не улица,
Мой адрес сегодня такой:
www.leningrad.spb.ru».
В 2002 году всем было очевидно, что адрес интернет-сайта или электронной почты должен быть записан именно латиницей. Ну не бывает же не-ASCII-символов в названии домена! А сейчас возможны варианты. Уже 10 лет наряду с латинскими символами в доменах верхнего уровня используются символы национальных алфавитов: от китайских и корейских иероглифов до кириллицы и арабской вязи. Под катом — о том, как это стало возможным, как осуществляется поддержка символов Unicode в доменных именах и как обстоят дела с кириллическими адресами в интернете.

Зачем нужны доменные имена на разных языках

Сегодня интернетом пользуются более 4,5 млрд человек, и к нему подключается всё больше людей из развивающихся стран Африки, Азии, Латинской Америки. Их население сталкивается сразу с несколькими проблемами: это отсутствие доступа в интернет, нехватка контента на национальных языках и — особенно это актуально для Юго-Восточной Азии и арабских стран — незнание латинского алфавита, который необходим для поиска нужных ресурсов. При этом технические проблемы решаются быстрее социальных: так, мобильными сетями уже пользуются 5,19 млрд человек, то есть интернету есть куда расти.
Чтобы снизить порог входа во Всемирную сеть, ещё в середине 2000-х в ICANN (Корпорация по управлению доменными именами и IP-адресами, Internet Corporation for Assigned Names and Numbers) возникла идея разрешить использование национальных алфавитов в доменной адресации. С одной стороны, это должно сохранить культурное и языковое разнообразие в интернете, а с другой — дать импульс росту интернет-индустрии в развивающихся странах.

Первые шаги к Unicode

На заре интернета никто не думал о важности использования национальных языков. Необходима была система адресации, и в её основу легла таблица символов ASCII — латинский алфавит, цифры от 0 до 9 и дефис. С ростом числа пользователей интернета ещё в середине 90-х в работе Internationalization of Domain Names была впервые описана идея интернационализированных доменных имён, но тогда это предложение не было реализовано.
Для поддержки национальных алфавитов необходи��о было проработать систему доменной адресации, поддерживающую нелатинские символы — IDN (Internationalized Domain Names). Для этого логично было перейти на Unicode, содержащий символы большинства языков мира. Однако система доменных имён (DNS) исторически обрабатывает только ASCII-символы. Систему DNS, а вместе с ней и всё ПО, так или иначе связанное с интернетом, невозможно в одночасье перевести на Unicode. Поэтому пришлось идти на временные компромиссы.
Чтобы на данном этапе ничего не менять кардинально, задачу решили через разработку представления ASCII compatible encoding и алгоритма кодирования Unicode-символов, описанного в RFC 3492. Алгоритм Punycode преобразует каждую из частей имени домена, записанную на национальном языке, в последовательность ASCII-символов, прибавляя к ней префикс xn--. Его работа описана в стандарте IDNA 2008.

Универсальное принятие

Глобальные нововведения — IDN, EAI (Email Address Internationalization, поддержка адресов электронной почты на национальных языках), New gTLD — требовали не только изменений в системе адресации, но и адаптации новых стандартов в интернет-ориентированных приложениях, устройствах и системах. Для продвижения этих преобразований была разработана концепция универсального принятия (Universal Acceptance, UA), в которой сформулирована и поставлена задача обеспечить корректное принятие, проверку, обработку, отображение и хранение всех допустимых доменных имён и почтовых адресов, в том числе на национальных языках, и новых доменов общего пользования. Для этого разработчикам необходимо добавить в свои интерфейсы поддержку Unicode, строк длиной до 256 символов, написания справа налево для арабских языков, а также отключить лишние проверки на соответствие введённых адресов старым стандартам.
С появлением первых стандартов началось преодоление этого технического барьера, и в 2009 году ICANN запустила ускоренную процедуру (Fast Track) регистрации национальных IDN-доменов. Так появились первые IDN-домены верхнего уровня, в том числе .РФ. А в начале 2012 года ICANN открыла первый раунд регистрации и сформулировала правила подачи заявок на New gTLD (так появились домены верхнего уровня — .MOSCOW, .МОСКВА и др.). С этого момента стало возможным зарегистрировать новый домен верхнего уровня общего назначения из трёх и более латинских или нелатинских символов.
Для достижения конечной цели — корректной работы со всеми новыми вариантами доменов и почтовых адресов — должны измениться не только стандарты, по которым строится интернет, но и ПО, разработанное на основе этих стандартов, а заодно устаревшие стереотипы о том, что нет других доменов, кроме .com, .net, .org и национальных. Если мы говорим о доменных именах, поддержка IDN и New gTLD должна быть интегрирована в браузеры, а также серверное ПО, проверяющее корректность ввода адреса, например, в поисковых запросах. С новыми правилами регистрации доменов верхнего уровня уже нет смысла проверять, что метка такого домена содержит не более трёх ASCII-символов или что она присутствует в некотором закрытом «белом» списке, как это было ранее. Список доменов верхнего уровня теперь динамичен, а в самих доменах могут присутствовать нелатинские символы.
Проблемами универсального принятия занимаются технические специалисты по всему миру, в том числе крупнейшие интернет-корпорации. Но некоторые сложности, затрудняющие развитие адресации на национальных языках, всё ещё остаются. Яркий пример — при репосте страницы с сайта с кириллическим адресом в Facebook его адрес будет преобразован в ASCII в соответствии с RFC 3492, так что многие пользователи вынуждены вставлять такие ссылки картинками (чтобы отображался оригинальный адрес на кириллице).

Группа по универсальному принятию

Сопровождением и развитием концепции UA занимается Группа управления по универсальному принятию (Universal Acceptance Steering Group), включающая более 450 участников со всего мира. Вместе с Apple, Google, Microsoft и другими гигантами в неё входят и российские организации, такие как Координационный центр доменов .RU/.РФ. Группа была создана в начале 2015 года. Её основная задача — помочь разработчикам ПО во внедрении существующих стандартов и обновлении их систем для универсального принятия IDN, EAI и New gTLD.
Поддержкой универсального принятия на «местном» уровне занимаются региональные организации и локальные инициативы. Совместными усилиями они способствуют более широкой адаптации новых стандартов. На конец 2018 года в мире было зарегистрировано уже порядка 9 млн IDN-доменов второго уровня. С 2017 года их число выросло на 20%.
Лидером среди всех IDN-доменов является Китай, и это и неудивительно — китайский язык второй по популярности в интернете, на нём говорит чуть менее 20% интернет-пользователей по всему миру. В общей сложности в Китае зарегистрировано 3,9 млн IDN-доменов, примерно 1,7 млн из них — на IDN-доменах верхнего уровня .中国 (упрощённый вариант) и .中國 (традиционный). А вот на втором месте по количеству зарегистрированных имён второго уровня — наш домен .РФ. Причём, в отличие от китайцев, у которых большинство зарегистрированных доменов лишь переадресуют пользователя на сайт с англоязычным доменом, у нас для переадресации используются лишь 10% доменов, а остальные являются самостоятельными ресурсами.

10 лет домену .РФ

Вопрос появления кириллицы в интернете начал прорабатываться ещё с 2007 года, а в 2008-м на конференции ICANN32 в Париже было принято предварительное решение о создании нового домена .РФ. На тот момент был�� зарегистрировано всего 22 gTLD-домена верхнего уровня (.COM, .EDU и т. п.) и около 200 национальных двухбуквенных доменов на латинице, в том числе .RU.
Приоритетная регистрация доменов второго уровня в зоне .РФ началась в 2009 году — сначала для государственных органов, а потом для обладателей товарных знаков и СМИ. Часть потенциальных доменов попала в предварительный стоп-лист, в качестве которого использовался словарь ненормативной лексики и обсценных выражений. Неожиданно запрещёнными оказались «фуфло», «хохотунчик» и другие жаргонизмы, о чём сразу стало известно на Хабре.
12 мая 2010 года первая кириллическая доменная зона .РФ появилась официально. О ее создании было объявлено практически одновременно с еще тремя зонами для стран арабского мира: Египта, ОАЭ и Саудовской Аравии.
Первыми были зарегистрированы сайты президент. рф и правительство.рф. А открытая регистрация доменов в этой зоне началась 11 ноября 2010 года. Только за первые сутки было зарегистрировано 240 тыс. доменов. Конечно, далеко не все из них действительно планировалось использовать под реальные задачи: как раз тогда начался период активного ведения бизнеса в интернете, и желающих нажиться на новом домене было немало.
За 10 лет в зоне .РФ зарегистрировано 730 тыс. доменных имён. Чуть больше четверти (26%) зарегистрированы за последний год. 0,8% из них существует с 2010 года. Для сравнения: в домене .RU за 26 лет работы зарегистрировано порядка 5 млн доменных имён, 96% из них делегированы.
Интересно, что хотя для латинских доменов верхнего уровня стандарт не запрещает регистрировать домены второго уровня на национальном языке, в российских национальных доменах принято жёсткое разделение: в .RU регистрируются только имена на латинице, а в .РФ — на кириллице. Так, среди нелатинских доменов второго уровня, зарегистрированных в .COM, лидируют имена с символами китайского (46%), корейского (12,5%) и кириллического алфавитов (4,2%).

Кириллические домены сейчас

В общей сложности сегодня существует 17 кириллических доменов верхнего уровня, четыре из них — российские (.РФ, .ДЕТИ, .РУС и. МОСКВА). Лидирует домен .РФ, а его ближайший иностранный конкурент — .БЕЛ (Беларусь), где к середине 2020-го набралось около 14 тыс. регистраций. В других странах количество зарегистрированных доменов второго уровня пока не достигает 10 тыс.
Причины разные. Например, Сербия получила кириллический домен верхнего уровня ещё в 2011 году, но в быту в стране всё активнее используется латинская письменность. На сегодняшний день в зоне .СРБ зарегистрировано чуть менее 2,5 тыс. доменов второго уровня. Это в 50 раз меньше количества доменов, зарегистрированных в зоне .RS (сербский национальный домен верхнего уровня на латинице).

Не только адрес: электронная почта на русском

Помимо поддержки адресации для сайтов на национальных языках универсальное принятие подразумевает присутствие национальных символов в адресах электронной почты.
Поддержка адресов электронной почты на национальных языках была стандартизирована ещё в 2013 году (список стандартов есть по ссылке), но масштабно эта технология пока не работает — доставка сообщений возможна только между системами, поддерживающими новый стандарт, а их пока немного.
Сложность поддержки национальных символов в адресах электронной почты заключается в том, что для двух частей адреса необходимо использовать разные подходы.
Предположим, у нас есть адрес «логин@имядомена», записанный национальными символами. Имя домена IDN преобразуется при помощи ASCII compatible encoding. Но логин пользователя на сервере записывается в Unicode, поскольку для локальной части нельзя применять те же правила преобразования, что и для доменного имени (адрес с кириллическими символами и адрес с латинскими символами, полученными алгоритмом Punycode из кириллических, — это разные адреса).
Чтобы разрешить символы Unicode в локальной части электронного адреса, необходимо было изменить формат заголовка электронного письма. Как минимум, в заголовок должны корректно включаться адреса отправителя и получателя. И если новый заголовок не поддерживается одним из почтовых серверов, использующихся для доставки письма, оно не будет доставлено.
В отличие от доменной адресации, где есть чёткая DNS-иерархия, в почтовой всё зависит от разрозненных почтовых серверов с их собственной политикой настроек. И к нестабильной доставке почты ведёт тот факт, что каждый разработчик сам определяет детали поддержки кириллических символов. В итоге полностью кириллические почтовые адреса поддерживают лишь 19% российских сайтов. Кстати, это не так мало — мы на втором месте по уровню поддержки интернационализированных почтовых адресов в мире (на первом — Германия, 28%).
Gmail поддерживает интернационализированные адреса с 2014 года. Зарегистрировать почтовый адрес с логином на кириллице там нельзя, но Gmail распознаёт адреса с диакритическими знаками и нелатинскими символами при обмене электронными сообщениями. Это значит, что с ящика на Gmail можно написать на адрес имя@домен.рф, получить ответ с этого ящика, и вы не получите сообщение об ошибке. Кстати, с 2016 года работает @Почта.рус — сервис регистратуры соответствующего домена верхнего уровня, где уже можно завести себе кириллический адрес.
С 2019 года поддержку кириллицы реализовал Microsoft в своём Exchange и Outlook. Также кириллица поддерживается в Postfix, начиная с 3-й версии, и Courier Mail Server c 2018 года. На macOS X кириллица есть в MailMate, начиная с 1.9.4. Почтовые клиенты под мобильные устройства Android и iOS также готовы к работе с национальными символами.
Для полной поддержки Unicode в доменных именах и адресах электронной почты предстоит сделать ещё очень много. И ускорить эту работу может запрос со стороны пользователей.
Для популяризации идеи UA в нашей стране в апреле 2020 года к юбилею национального кириллического домена Координационный центр доменов .RU/.РФ запустил проект для технических специалистов Поддерживаю.РФ. Цель проекта — помочь включить поддержку доменных имён и адресов электронной почты на национальных языках во всех сетевых программных продуктах и коммуникациях. На этом ресурсе уже опубликованы Методика тестирования ПО на поддержку IDN и Рекомендации по внедрению поддержки кириллицы, а также есть список ПО и сервисов с указанием их текущего статуса поддержки IDN/EAI.