Домен в информатике и сети Интернет¶
Домен — многозначный термин, используемый в информатике и телекоммуникациях для обозначения области определения, зоны административного контроля или иерархического пространства имён. В зависимости от контекста под доменом понимают область видимости переменных в языках программирования, зону ответственности DNS-сервера в сети Интернет или область верхнего уровня в системе доменных имён.
¶Домен в системе доменных имён (DNS)
В сети Интернет домен — иерархическое имя, определяющее зону административного контроля в системе доменных имён (DNS, Domain Name System). Доменные имена служат человекочитаемыми адресами ресурсов: сайтов, почтовых серверов и других сервисов. Структура доменного имени иерархична и читается справа налево: в имени example.ru правый компонент ru — домен верхнего уровня, а example — домен второго уровня.
¶Уровни доменов
- Домены верхнего уровня (TLD) — разделены на национальные (
.ru— Россия,.de— Германия,.jp— Япония), международные generic (.com,.org,.net,.info) и новые (.app,.dev,.museum). - Домены второго уровня — регистрируются пользователями в зоне TLD, например
yandex.ru. - Поддомены — создаются внутри домена второго уровня:
mail.yandex.ru,api.example.com.
¶Регистрация доменов
Регистрация домена осуществляется через аккредитованных регистраторов. В России доменная зона .ru и национальная зона .рф администрируются компанией «Региональный центр интернет-доменов» (РЦИД). Мировая система корневых DNS-серверов управляется организацией ICANN (Internet Corporation for Assigned Names and Numbers). Регистрация домена обычно платная и оформляется на определённый срок (от одного года), после чего продлевается. Доменное имя не является собственностью в юридическом смысле — регистратор предоставляет права на использование.
¶Техническая роль DNS
DNS сопоставляет доменные имена с IP-адресами. Запрос пользователя к example.ru преобразуется в числовой адрес (например, 93.184.216.34), по которому устанавливается соединение с сервером. Домены организованы в зоны, каждая из которых обслуживается авторитетными DNS-серверами. Родительская зона делегирует управление подчинённой — этот механизм обеспечивает масштабируемость системы на миллиарды имён.
¶Домен в языках программирования
В программировании домен — область видимости (scope), в которой определены имена переменных, функций, типов и констант. Переменная, объявленная внутри домена, доступна только в пределах этого домена или в дочерних доменах, но не во внешних.
¶Виды доменов видимости
- Глобальный домен — охватывает всю программу; переменные здесь доступны из любого места кода.
- Локальный домен — создаётся при вызове функции; переменные живут до завершения выполнения функции.
- Блочный домен — ограничивается фигурными скобками
{ }в языках семейства C (C, C++, Java, C#, JavaScript).
В языке Python область видимости реализована через механизм LEGB (Local, Enclosing, Global, Built-in), определяющий порядок поиска имён. В языке JavaScript аналогом домена является lexical environment, а в объектно-ориентированных языках областью видимости выступают классы и пакеты (Java, C#).
¶Домен в математике
В математике домен — синоним множества определения функции или области определения. Например, домен экспоненциальной функции — множество всех действительных чисел, а домен логарифмической функции — положительные числа. Термин также используется в теории множеств и алгебре: домен (domain) — целостная область, например целостное кольцо без нуля.
¶Домен в теории игр и машинном обучении
В теории игр и искусственном интеллекте домен обозначает множество допустимых состояний задачи или пространство возможных решений. В планировании автоматических систем домен действия — набор объектов, с которыми может взаимодействовать агент. В машинном обучении домен часто описывает распределение данных: при обучении и применении модели домены могут различаться (domain shift), что является предметом отдельного направления исследований — domain adaptation.
¶Домен в логике и леденгвистике
В математической логике домен (область значений) — множество элементов, к которым относится квантор. В лингвистике и теории семантики домен — множество объектов, по отношению к которым интерпретируются высказывания.
¶См. также
- DNS
- Домен верхнего уровня
- Область видимости (программирование)
- ICANN
- IP-адрес
¶Источники
- RFC 1034. Domain Names — Concepts and Facilities
- RFC 1035. Domain Names — Implementation and Specification
- Комаров А. В. «Компьютерные сети: технологии, протоколы, безопасность»
- Робертс Л. «Доменные имена и DNS»
- Материалы документации W3C и IETF по системе доменных имён
- Справочник по языку Python (Python Documentation, раздел «The Python Tutorial», гл. 9)
