Валерий Сидоров Грандмастер

Доменное имя на русском? Легко! Часть 1

Терминология
Доменное имя (домен) — область пространства иерархических имен сети Интернет, которая обслуживается набором серверов доменных имен (DNS) и централизованно администрируется. Домен идентифицируется уникальным именем, например, domain.ru.
DNS (сокр. от Domain Name System) — служба имен доменов (механизм, используемый в Интернет и устанавливающий соответствие между числовыми IP-адресами и текстовыми именами).
ICANN (сокр. от Internet Corporation for Assigned Names and Numbers) — некоммерческая организация по назначению адресов и имен в Интернет, параметров протоколов, управлению системами доменных имен.
IETF (сокр. от Internet Engineering Task Force) — проблемная группа проектирования Интернет, отвечающая за решение инженерных задач Интернет, выпускает большинство RFC, используемых производителями для внедрения стандартов в архитектуру TCP/IP).
RFC (сокр. от Requests for Comments) — Запросы на комментарии (серия документов IETF, начатая в 1969 г. и содержащая описания набора протоколов Интернет и связанную с ними информацию).
IDN (сокр. от Internationalized Domain Names) — группа поддержки многоязычных доменных имен, была создана в 1999 г. внутри IETF, поддерживает регистрацию доменных имен более, чем на 60 языках.
MINC (сокр. от Multilingual Internet Names Consortium) — Консорциум многоязычных интернет-имен — организация, созданная в июне 2000 г. для поддержки многоязычных доменных имен, осуществляет интернационализацию Интернета.
ASCII (сокр. от American Standard Code for Information Interchange [по-американски произносится эски, по-русски — аски]) — американский стандартный код для обмена информацией, 7-битная компьютерная кодировка для представления латинского алфавита, десятичных цифр, некоторых знаков препинания, арифметических операций и управляющих символов.
Unicode (Юникод, Уникод) — 16-битный стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Стандарт был предложен в 1991 г. некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium), объединяющей крупнейшие IT-корпорации. Применение этого стандарта позволяет закодировать очень большое число символов из разных письменностей: в документах Unicode могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы, кириллицы и т. д.
Стандарт состоит из 2-х основных разделов: универсальный набор символов (UCS, Universal Character Set) и семейство кодировок (UTF, Unicode Transformation Format). Универсальный набор символов задает однозначное соответствие символов кодам — элементам кодового пространства, представляющим неотрицательные целые числа. Семейство кодировок определяет машинное представление последовательности кодов UCS.
UTF-8 — это представление (формат) Юникода, обеспечивающее наилучшую совместимость со старыми системами, использовавшими 8-битные символы. Формат UTF-8 был создан 2 сентября 1992 г. Кеном Томпсоном и Робом Пайком.

Что происходит, когда мы в адресной строке браузера набираем, например, http://www.domain.ru? Упрощенная схема такова: система DNS устанавливает соответствие доменному имени www.domain.ru IP-адреса, например, 111.111.111.111. Запрошенный нами ресурс отыскивается на бескрайних просторах Интернета и загружается на наш ПК. А нельзя ли вместо domain.ru набрать домен.ру?

Предыстория вопроса
Исторически сложилось так, что Интернет (как и компьютер!) зародился в англоязычной среде, и основным ограничением DNS является то, что для записи доменных имен необходимо использовать только 37 символов ASCII (латинские буквы от a до z, арабские цифры и символ дефиса).
Но многоязычное интернет-сообщество не пожелало с этим мириться: например, китайцы захотели регистрировать доменные имена на китайском, вьетнамцы — на вьетнамском… Организации ICANN, отвечающей за назначение адресов и имен в Интернете, пришлось пораскинуть мозгами: создать «группы поддержки», разработать массу протоколов и стандартов. Но, согласившись с появлением национальных доменных имен, ICANN долго настаивал на латинском написании доменов верхнего уровня. Например, в Рунете сначала появились сайты со смешанным написанием русских и латинских букв — http://www.россия.net/ и http://рбк.com/, а уж значительно позже — http://домены.ру/.

Как это внедрялось
Процесс внедрения национальных доменных имен оказался очень непростым и очень продолжительным. Для того чтобы сохранить работоспособность существующей системы DNS, доменные имена, содержащие символы национальных алфавитов, необходимо перекодировать в общую для всей системы адресации форму. В 2003 г. группа IETF IDN для представления национальных алфавитов выбрала универсальную кодировку UTF-8. Из этой кодировки доменные имена определенным образом преобразовываются в последовательности ASCII-символов. Такое решение позволяет добиться независимости от используемых на стороне клиента операционных систем, и при этом соответствует требованиям уже существующей системы DNS.

Необходимо отметить очень важный нюанс. Применяя русскоязычные (или китайскоязычные) доменные имена, на самом деле, мы просто тешим свое национальное самолюбие: интернационализация доменных имен не отменяет существующих протоколов работы DNS — внутри нее всё так и остается в символах ASCII, мультиязычность как бы добавляется сверху.

Продолжение следует

Обновлено 15.01.2009
Статья размещена на сайте 9.01.2008

Комментарии (9):

Чтобы оставить комментарий зарегистрируйтесь или войдите на сайт

Войти через социальные сети:

  • Н даааа!! Весьма интересно. Ставлю за статью 5. Я ещё не встречал рускоязычных доменом, да и хостеры не предлагают. Да и зачем нужны все эти заморочки.

    Оценка статьи: 5

  • основным ограничением DNS является то, что для записи доменных имен необходимо использовать только 37 символов ASCII (латинские буквы от a до z, арабские цифры и символ дефиса).
    точку упустили, при большом желании можно её использовать, только что получится домен более высокого уровня
    отчасти из-за этого популярен домен ".net", его созвучность с русским "нет" довольно часто обыгрывают

    Необходимо отметить очень важный нюанс. Применяя русскоязычные (или китайскоязычные) доменные имена, на самом деле, мы просто тешим свое национальное самолюбие: интернационализация доменных имен не отменяет существующих протоколов работы DNS – внутри нее всё так и остается в символах ASCII, мультиязычность как бы добавляется сверху.

    да-да.. ещё и реальные доменные имена стали корявее.. да и не все браузеры их поддерживают..
    "http://домены.ру/" на самом деле выглядит как "http://xn--d1acufc5f.xn--p1ag/", (кстати такого сайта вроде нету)

    • xn--d1acufc5f.xn--p1ag – это так называемое представление доменного имени домены.ру в системе DNS.

      Кстати, если домены.ру с плагином iClient загружается нормально, то алсу.ру (представление доменного имени – xn--80awsi.xn--p1ag.aced.net) загрузить ни разу не удалось…

      Оценка статьи: 5

      • Марианна Власова Марианна Власова Бывший главный редактор 13 января 2008 в 15:24

        Так и школажизни.ру не получится, хотя имя зарезервировано... Может и там просто занято, чтобы другие не влезли.
        А домены.ру не загрузились и с iClient'ом... (Vista Home Basic, IE7).

        • Да, у Vista Internet Explorer 7.0 хоть с плагином, хоть без него – одни заморочки…

          А вот XP с плагином iClient работает чудесно: по крайней мере, домены.ру, петерхост.ру и некоторые другие грузятся без проблем.

          Оценка статьи: 5

          • Иногда (очень редко!) удается в Vista открыть русскоязычные домены, но для этого нужно настроить IE.

            В целях безопасности Internet Explorer 7.0 по умолчанию отображает международные доменные имена (International Domain Names, IDN) в стандартной кодировке текста ASCII.

            Как включить в IE 7.0 поддержку IDN в кодировке UTF-8
            Пуск –> Панель управления –> Свойства обозревателя;
            – вкладка Общие –> Представление –> Языки –> Выбор языка;
            – в разделе Язык должны быть: Русскй (Россия) и Юникод (UTF-8 ) [если Vista русифицированная, то русский уже должен быть выбран по умолчанию, если нет, то добавить]. Юникод нужно добавить: кнопка Добавить… –> Добавление языка –> в текстовом поле Другой введите Юникод (UTF-8 ) –> OK;
            – в разделе Настройка префикса и суффикса установите флажок Не добавлять 'www' к началу вводимых веб-адресов –> OK;
            – отключите фильтр фишинга: вкладка Безопасность –> Интернет –> Другой… –> Параметры безопасности –> Использовать фильтр фишинга –> Отключить –> OK;
            – откройте вкладку Дополнительно –> в разделе Безопасность –> Фильтр фишинга –> установите переключатель Отключить автоматическую проверку веб-узлов; в разделе Международный установите флажки Отправить URL-адреса UTF-8 и Отправить имена IDN-серверов –> OK.

            Оценка статьи: 5