← Назад к вопросам

Что такое доменное имя?

2.0 Middle🔥 81 комментариев
#Python Core

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI23 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Доменное имя (Domain Name)

Доменное имя — это человеко-читаемый адрес в интернете, который преобразуется в IP-адрес. Вместо запоминания цифр 93.184.216.34, мы используем легко запоминаемое имя example.com.

Структура доменного имени

https://www.example.com:8080/path
         ├─ www      — subdomain (поддомен)
         ├─ example  — second-level domain (SLD)
         ├─ .com     — top-level domain (TLD)
         └─ com      — extension (расширение)

Уровни снизу вверх:
com (TLD)        ← Управляется организацией (ICANN)
 └─ example      ← Ваш домен
    └─ www       ← Поддомен
       └─ mail    ← Поддомен

Полная иерархия DNS

Root Domain (.)
├─ TLD: com (.com)
│  ├─ example.com
│  │  ├─ www.example.com
│  │  ├─ mail.example.com
│  │  └─ api.example.com
│  └─ google.com
│     └─ maps.google.com
├─ TLD: org (.org)
│  └─ wikipedia.org
└─ TLD: ru (.ru)
   └─ yandex.ru

Типы доменных имён

1. Top-Level Domain (TLD) — Верхние уровни

# gTLD — Generic TLDs (общие)
.com      # Commercial (коммерческие)
.org      # Organization (организации)
.net      # Network
.info     # Information
.biz      # Business
.co       # Company

# ccTLD — Country Code TLDs (национальные)
.ru       # Russia
.uk       # United Kingdom
.de       # Germany
.fr       # France
.cn       # China
.jp       # Japan

# Новые TLDs (nTLDs)
.tech     # Tech компании
.io       # Начально Индийский океан, сейчас для стартапов
.app      # Для приложений
.dev      # Для разработчиков

2. Second-Level Domain (SLD) — Ваше имя

example.com
└─ "example" это SLD
└─ Вы платите за право владеть этим

3. Subdomain (Поддомены) — Ветви

www.example.com        → www это поддомен
api.example.com        → api это поддомен
mail.example.com       → mail это поддомен
blog.example.com       → blog это поддомен
staging.api.example.com → staging и api это поддомены (многоуровневые)

# Поддомены можно создавать бесплатно (указав DNS записи)

Как работает преобразование имени в IP (DNS)

1. Вводишь в браузер: google.com

2. Браузер спрашивает локальный DNS resolver:
   "Какой IP у google.com?"

3. Resolver спрашивает Root nameserver:
   "Где .com?"
   Ответ: "Спроси у 13 TLD nameservers"

4. Resolver спрашивает один из TLD nameservers:
   "Где google.com?"
   Ответ: "Спроси у Google nameservers"

5. Resolver спрашивает Google nameserver:
   "Какой IP у google.com?"
   Ответ: "93.184.216.34"

6. Браузер знает IP, подключается к серверу

DNS записи

У каждого доменного имени есть набор DNS записей:

# A запись — преобразует домен в IPv4
example.com A 93.184.216.34

# AAAA запись — преобразует домен в IPv6
example.com AAAA 2606:2800:220:1:248:1893:25c8:1946

# CNAME запись — создаёт alias (псевдоним)
www.example.com CNAME example.com  # www указывает на example.com
api.example.com CNAME api-server.example.com

# MX запись — указывает почтовый сервер
example.com MX 10 mail.example.com

# NS запись — указывает nameservers (управление доменом)
example.com NS ns1.example.com
example.com NS ns2.example.com

# TXT запись — произвольные текстовые данные
example.com TXT "v=spf1 include:_spf.google.com ~all"  # SPF для почты
example.com TXT "google-site-verification=.."  # Верификация Google

Практический пример: управление доменом

# Предположим, ты зарегистрировал example.com у Namecheap

# 1. Регистратор даёт тебе доступ к DNS панели
# 2. Ты добавляешь DNS записи:

A запись: example.com -> 192.168.1.1  # Основной сервер
A запись: www.example.com -> 192.168.1.1
CNAME: www.example.com -> example.com  # или через CNAME
MX запись: example.com -> mail.google.com (если используешь Gmail)
TXT запись: SPF, DKIM, DMARC (для безопасности почты)

# 3. Твой веб-сервер слушает на 192.168.1.1
# 4. Когда кто-то вводит example.com → браузер делает DNS запрос
# 5. DNS возвращает 192.168.1.1
# 6. Браузер подключается к серверу

Регистрация доменного имени

Количество уровней:

1. Регистраторы доменов (Domain Registrar)
   - GoDaddy, Namecheap, Enom, etc.
   - Они продают .com, .org, .ru и др.
   - Платишь ежегодно (~$10-15/год за .com)

2. Регистр (Registry)
   - VeriSign (управляет .com)
   - Rosreestr (управляет .ru)
   - Они хранят базу всех доменов

3. ICANN (Internet Corporation for Assigned Names and Numbers)
   - Центральная организация
   - Управляет корневыми nameservers
   - Выпускает новые TLDs

Поддомены в веб-приложениях

from fastapi import FastAPI, Header
from starlette.requests import Request

app = FastAPI()

@app.get("/")
async def index(request: Request):
    # Получить текущий хост
    host = request.headers.get('host')
    print(host)  # example.com или api.example.com или www.example.com
    
    # Определить, какой это поддомен
    subdomain = host.split('.')[0] if host else None
    
    if subdomain == 'api':
        return {"message": "API endpoint"}
    elif subdomain == 'mail':
        return {"message": "Mail interface"}
    else:
        return {"message": "Main website"}

# Можно использовать для маршрутизации:
# api.example.com -> API endpoints
# mail.example.com -> Mail application
# www.example.com -> Frontend

Настройка DNS на Python

import dns.resolver

# Получить A запись (IP адрес)
responses = dns.resolver.resolve('example.com', 'A')
for rdata in responses:
    print(f"IP: {rdata}")

# Получить MX запись (почтовый сервер)
mx_records = dns.resolver.resolve('example.com', 'MX')
for mx in mx_records:
    print(f"Mail server: {mx.exchange} (priority: {mx.preference})")

# Получить TXT запись
txt_records = dns.resolver.resolve('example.com', 'TXT')
for txt in txt_records:
    print(f"TXT: {txt}")

# Проверить NS (nameservers)
ns_records = dns.resolver.resolve('example.com', 'NS')
for ns in ns_records:
    print(f"Nameserver: {ns}")

Основные концепции

Домен vs Поддомен:

example.com (домен)
├─ www.example.com (поддомен)
├─ api.example.com (поддомен)
└─ mail.example.com (поддомен)


FQDN (Fully Qualified Domain Name):
    mail.google.com
    ├─ mail      — hostname
    ├─ google    — domain
    └─ .com      — TLD
    = FQDN (полное имя)


Адреса в браузере:
https://subdomain.example.com:8080/path?query=value#fragment
       └──────────────────────┘
       Это доменное имя
                     ┘
            Протокол указывает путь передачи

Срок действия домена

# Доменное имя нужно обновлять ежегодно

# Сценарий:
# 1. Ты регистрируешь example.com на 1 год
# 2. Платишь ~$12 в год
# 3. Через год домен может истечь
# 4. Регистратор может предложить обновление
# 5. Если не обновить в течение grace period (15-30 дней)
#    → домен может быть куплен кем-то другим
# 6. После этого идёт redemption period (30 дней)
#    → можно восстановить за +$80
# 7. Затем домен удаляется и становится доступным для всех

Защита доменного имени

# Domain Lock (блокировка домена)
# Регистратор может заблокировать домен от перевода

# WHOIS Privacy (приватность)
# Скрыть реальные данные владельца в WHOIS

# 2FA (двухфакторная аутентификация)
# Для доступа к панели управления доменом

# DNSSEC (безопасность DNS)
# Криптографическая подпись DNS записей

Ключевые моменты

  • Доменное имя это человеко-читаемый адрес вместо IP
  • TLD (.com, .ru, .org) управляются организациями
  • Поддомены (www, api, mail) создаются через DNS записи
  • DNS преобразует имена в IP адреса
  • Надо обновлять доменное имя каждый год
  • A запись связывает домен с IPv4 адресом
  • CNAME создаёт альтернативные имена для домена
Что такое доменное имя? | PrepBro