Открыть сервисСервис

Домен в информатике и сети Интернет

Домен — многозначный термин, используемый в информатике и телекоммуникациях для обозначения области определения, зоны административного контроля или иерархического пространства имён. В зависимости от контекста под доменом понимают область видимости переменных в языках программирования, зону ответственности 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.

Домен в логике и леденгвистике

В математической логике домен (область значений) — множество элементов, к которым относится квантор. В лингвистике и теории семантики домен — множество объектов, по отношению к которым интерпретируются высказывания.

См. также

Источники

  • RFC 1034. Domain Names — Concepts and Facilities
  • RFC 1035. Domain Names — Implementation and Specification
  • Комаров А. В. «Компьютерные сети: технологии, протоколы, безопасность»
  • Робертс Л. «Доменные имена и DNS»
  • Материалы документации W3C и IETF по системе доменных имён
  • Справочник по языку Python (Python Documentation, раздел «The Python Tutorial», гл. 9)
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru