Записка по терминологии в поддержку ответа Борцмейера
Надо четко понимать определения. Как здесь используется:
- имя домена - это идентификатор ресурса в базе данных DNS
- метка является частью доменного имени между точками
- имя хоста - это специальный тип доменного имени, который идентифицирует хосты в Интернете
имя хоста подчиняется ограничениям RFC 952 и небольшому ослаблению RFC 1123
RFC 2181 разъясняет, что существует разница между доменным именем и именем хоста:
... [тот факт, что любая двоичная метка может иметь запись MX, не означает, что любое двоичное имя может использоваться в качестве части хоста адреса электронной почты ...
Итак, подчеркивания в именах хостов - нет-нет, подчеркивания в доменных именах - это нормально.
На практике хорошо видно имена хостов с подчеркиванием. Как гласит Принцип устойчивости : «Будь консервативным в том, что ты посылаешь, либеральным в том, что ты принимаешь».
Примечание о кодировке
В 21 веке оказывается, что имена хостов , а также доменные имена могут быть интернационализированы! Это означает использование кодировок в случае меток , которые содержат символы, которые находятся за пределами разрешенного набора.
В частности, он позволяет кодировать _
в имен хостов (Обновление 2017-07: это сомнительно, см. Комментарии. _
по-прежнему нельзя использовать в именах хостов. Действительно, это даже не может использоваться в интернационализированных этикетках.)
Первым RFC для интернационализации был RFC 3490 от марта 2003 года "Интернационализация доменных имен в приложениях (IDNA)". Сегодня мы имеем:
- RFC 5890"IDNA: определения и структура документа"
- RFC 5891"IDNA: Protocol"
- RFC 5892"Кодовые точки Unicode и IDNA"
- RFC 5893"Сценарии справа налево для IDNA"
- RFC 5894 «ИДНА: предыстория, объяснение и обоснование»
- RFC 5895"Отображение символов для IDNA 2008"
Вы также можете проверить Запись в Википедии
RFC 5890 вводит термин LDH (Letter-Digit-Hypen) метка для меток , используемых в имен хостов и говорит:
Это классическая форма метки, используемая, хотя и с некоторыми дополнительными ограничениями, в именах хостов (RFC 952). Его синтаксис идентичен синтаксису, описанному как «предпочтительный синтаксис имени» в разделе 3.5 RFC 1034 с изменениями в RFC 1123. Вкратце, это строка, состоящая из букв ASCII, цифр и дефиса с дополнительным ограничением, которое дефис не может появляются в начале или в конце строки. Как и все метки DNS, его общая длина не должна превышать 63 октета.
Возвращаясь к более простым временам, этот интернет-проект является ранним предложением hostname интернационализации. Имена хостов с международными символами могут быть закодированы с использованием, например, 'RACE' кодировка .
Автор предложения 'RACE encoding' отмечает:
Согласно RFC 1035, части узла должны быть без учета регистра, начинаться и заканчиваться буквой или цифрой и содержать только буквы, цифры и дефис («-»). Это, конечно, исключает любые интернационализированные символы, а также многие другие символы в репертуаре символов ASCII. Кроме того, части доменного имени должны быть 63 октета или короче
длина .... Все постконвертированные части имени, содержащие интернационализированные символы, начинаются со строки "bq--". (...) Строка "bq--" была выбрана, потому что это крайне маловероятно
существовать в основных узлах до того, как эта спецификация была произведена.