IDN-домены: веб-адреса со специальными символами

Интернет неуклонно глобализируется. По данным Международного союза электросвязи (МСЭ), более трех миллиардов человек пользуются Всемирной паутиной — и все чаще на своих родных языках. Эти изменения отчасти были вызваны введением в 2003 году международных доменных имен (IDN).

Что такое интернационализированное доменное имя (IDN)?

До 2003 года доменные имена могли состоять только из букв латинского алфавита, цифр от 0 до 9 и дефиса. Эти ограниченные возможности можно объяснить, взглянув на систему доменных имен (DNS). Эта служба, которая также отвечает за перевод URL-адресов в IP-адреса, работает по схеме именования, основанной на американском стандартном коде обмена информацией (ASCII). Эта система в основном построена на англоязычных клавиатурах и не очень показательна для такого международного проекта, как Интернет.

Для того чтобы компенсировать этот существенный недостаток, была создана система под названием «Интернационализация доменных имен в применении» (IDNA). Целью этого механизма является определение стандартизированного перевода из Unicode в ASCII, что позволяет отображать в интернет-доменах символы всех известных алфавитов.

IDNA считается одной из крупнейших революций в истории Интернета. Эта новая система особенно полезна для людей, использующих азиатские, африканские или арабские системы символов. Теоретически любой текст Unicode может быть использован в интернационализированном доменном имени. Однако на практике регистраторы доменов могут самостоятельно решать, какие специальные символы могут быть использованы при регистрации. Выбор, как правило, различается, поскольку реестры доменов могут индивидуально определять, какие специальные символы могут быть использованы для регистрации. Это означает, что символы различаются в зависимости от того, какой домен верхнего уровня (например, .com, .mx, .ca и т.д.) используется.

Как работает IDNA?

Большая часть инфраструктуры Интернета поддерживается только набором символов ASCII. И для того, чтобы эти интернационализированные имена могли обрабатываться, каждое ИДИ, доступное в Юникоде, может быть переведено в строку ACE, которая основана на ASCII. После этого URL-адреса, содержащие символы с ударениями или умляутами, отображаются; сервер, с другой стороны, продолжает обрабатывать адреса как совместимые с ASCII. Эти процессы описаны в памятках IDNA2003 и IDNA2008. Перевод из Unicode в ASCII происходит на стороне клиента и основан на стандартизированных процессах кодирования под названием Punycode.

Punycode

Стандартизированный RFC 3492 Punycode был разработан для четкого отображения строк символов Unicode без потери качества символов ASCII. Все не ASCII символы удаляются из доменного имени, кодируются и разделяются дефисом. Эта кодовая последовательность содержит информацию о данном символе Unicode, а также о его положении в доменном имени. Кроме того, каждая созданная таким образом строка ACE монтируется с префиксом xn в начале; это поясняет читателю, что последовательность символов закодирована IDN в соответствии со стандартами кодирования IDNA и Puny. Вот пример сравнения домена МАР-формы с его аналогом ACE-строки:

              Форма МАР: müllers-café.com

              ACE-строка: xn--mllers-caf-k7a2t.com

За префиксом xn, который маркирует домен как ACE-строку, следует часть доменного имени, из которой удалены все не-ASCII символы, mllers-caf. Закодированные специальные символы k7a2t были добавлены в конец домена и отделены дефисом.

Конвертация IDN от Versign позволяет легко переводить из ACE в IDN или наоборот.

Различия между IDNA2003 и IDNA

В оригинальной процедуре 2003 года интернационализированные URL-адреса нормализовались до кодирования в Punycode с помощью метода nameprep. Этот метод позволял заменить заглавные буквы на строчные, удалить управляющие символы и перевести эквивалентные символы в унифицированную форму. Nameprep был исключен из этого процесса с появлением IDNA2008. Теперь IDNA не задает никакой нормализации; вместо этого рекомендуется алгоритм, который преобразует заглавные буквы в строчные.

Оцените статью
cdelat.ru
Добавить комментарий