#unicode #domain-name #idn
#юникод #доменное имя #idn
Вопрос:
Некоторые люди ответят, что доменные имена не чувствительны к регистру. В новом мире Unicode это уже не так.
(Источник)
Я думал, что одним из шагов в преобразовании Unicode> Punycode была «нормализация», которая отображала имена доменов в нижнем регистре.
Комментарии:
1. См. Официальную спецификацию (IETF RFC 4343): Разъяснение о нечувствительности к регистру в системе доменных имен (DNS)
Ответ №1:
Для устаревших доменных имен на основе ASCII да, доменные имена были и остаются нечувствительными к регистру.
Цитирую RFC 1035, ДОМЕННЫЕ ИМЕНА — РЕАЛИЗАЦИЯ И СПЕЦИФИКАЦИЯ:
Обратите внимание, что, хотя в доменных именах разрешены прописные и строчные буквы, регистр не имеет значения. То есть два имени с одинаковым написанием, но разным регистром должны рассматриваться как идентичные.
Например, все они представляют один и тот же домен:
- example.com
- Example.com
- EXAMPLE.COM
- EXampLE.com
В современном DNS теперь у нас есть интернационализированные доменные имена (IDN), которые допускают символы Unicode. Проблема в том, что определение верхнего и нижнего регистра может быть сложным в некоторых языках и наборах символов за пределами ASCII (Unicode — это надмножество US-ASCII).
Цель доменных имен — не учитывать регистр, но могут возникнуть сложности с конкретными символами в конкретных сценариях определенных человеческих языков. Таким образом, на ваш вопрос нет простого ответа «ДА» или «НЕТ».
При использовании доменных имен, отличных от ASCII, вам следует прочитать:
- Интернационализированное доменное имя в Википедии
- Разъяснение о нечувствительности к регистру в системе доменных имен (DNS) Официальная спецификация (IETF RFC 4343)
Комментарии:
1. Дополнительная информация ссылка: в RFC 1035 говорится: «Обратите внимание, что, хотя в доменных именах разрешены прописные и строчные буквы, регистру не придается никакого значения. То есть два имени с одинаковым написанием, но разным регистром, должны рассматриваться как идентичные «.
2. @Kaan Спасибо, я добавил эту цитату и ссылку на ответ.
Ответ №2:
НЕПРАВИЛЬНО: URL-адреса по-прежнему не чувствительны к регистру, даже для IDN.
ИСПРАВЛЕНИЕ:
Вопрос касался IDN: «Учитывается ли регистр имен доменов IDN?»
Мой первоначальный ответ неверен и не дает четкого ответа на вопрос. Это добавляет URL-адреса в микс.
Часть имени домена (IDN) URL-адреса не зависит от регистра.
Другие элементы могут быть нечувствительны к регистру или нет. Это зависит от многих факторов и в целом непредсказуемо.
Например, часть пути обычно зависит от операционной системы или даже файловой системы, в которой размещен сайт (в macOS вы можете отформатировать диск без учета регистра или нет) Но в наши дни некоторые из этих путей могут быть «подключены» для ответа на RESTfull API. Так что это зависит от того, как выполняется «перехват».
Аналогично для других элементов (пользователь, пароль, параметры, значения параметров)
Комментарии:
1. См. RFC 3987 «Интернационализированные идентификаторы ресурсов (IRIs)». Они чувствительны к регистру, но в зависимости от конкретной схемы они МОГУТ не учитывать регистр. Доменная часть IRI не чувствительна к регистру, но не другие части, такие как пути и имена файлов.
2. Вопрос касается IDN, а не IRI. Доменное имя — это просто часть IRI. Проверьте RFC 3490. ToASCII вызывает nameprep (RFC 3491), который ссылается на stringprep (RFC 3454). В разделе 3.2 «Сгибание регистра» указывается точная таблица сгибания (CaseFolding.txt ) и версия Unicode (3.2), так что это не только не зависит от регистра, но и указана точная таблица преобразования регистра.
3. Таким образом, утвержденный ответ не является точным, говоря: «определение верхнего и нижнего регистра может быть сложным в языках и наборах символов за пределами ASCII». Это Юникод, и указана точная версия. Никаких других наборов символов. Даже в статье Википедии, рекомендованной «ответом», говорится: «примените алгоритм Nameprep, который преобразует метку в нижний регистр и выполняет другую нормализацию». Поэтому, пожалуйста, перед голосованием против, сделайте домашнее задание.
4. URL чувствительны к регистру. Обычно это происходит на практике: путь, обслуживаемый серверами Linux (например, Apache), чувствителен к регистру (как файловая система), в то время как серверы Windows (например, IIS) НЕ чувствительны к регистру (как файловые системы Windows).). Ваш пробег может отличаться.
5. @user5994461. Вопрос касался конкретно доменных имен, а не всего URL-адреса. Я знаю, что пути чувствительны к регистру в соответствии со спецификацией HTTP, даже если некоторые серверы не обязательно обрабатывают их как таковые.