Что такое хостинг и домен сайта простыми словами

Что такое хостинг и домен сайта простыми словами

Каждый день мы гуляем по десяткам сайтов: работаем, читаем новости, смотрим видео и слушаем музыку. Эти действия настолько автоматизированны, что нет потребности понимать, где находятся сайты и почему переход по адресу ru.hexlet.io откроет именно сайт Хекслета, а не музыкальный сервис или новостной портал про котиков.

В этом гайде разберем:

  • Как появились домены
  • Кто такие хостеры и где лежит сайт в интернете
  • Какие виды хостингов используются

Доменное имя (домен)

Еще до появления современного интернета, для передачи информации между компьютерами, использовались числовые адреса. Сейчас они называются IP-адреса, сокращенно от Internet Protocol address. Чтобы передать информацию, нужно было знать этот адрес, например 10.210.107.23. Это похоже на телефонный номер и было удобным решением. Но количество компьютеров росло и запомнить все адреса было почти невозможно.

Первым решением стал специальный файл hosts. Он находился на каждом компьютере в сети и позволял дать компьютерам имена. Адрес компьютера и его имя связывались, а значит передавать информацию можно по имени, например Alex-PC вместо 10.210.107.23. Этот файл существует до сих пор и часто используется программистами во время разработки. Формат файла:

# Формат файла: <ip-адрес> <имя компьютера>
34.117.253.138 hexlet.io
10.210.107.23 Alex-PC

Со временем и такой способ стал неудобен: файл нужно было обновлять вручную или самостоятельно скачивать с компьютера, у которого был актуальный список адресов. Требовался автоматизированный способ связывания адреса и имени. Для решения этих проблем создали Domain Name System (DNS). Эта система научилась автоматически связывать адреса с именами, сняв головную боль с пользователей компьютеров.

Как работает DNS

DNS используется и сейчас, позволяя связывать имя сайта, которое называется домен, с IP-адресом компьютера на котором сайт и расположен. Другими словами, любой сервис может обратиться к DNS и спросить «какой IP-адрес у домена hexlet.io?».

Как компьютер находит адрес

Когда происходит запрос по адресу, например, hexlet.io, то сначала проверяется файл hosts, и если домен найден, то браузер устанавливает соединение с сервером. В нашем примере он пойдёт по адресу 34.117.253.138.

# Пример обращения к DNS с помощью утилиты host
host hexlet.io
hexlet.io has address 34.117.253.138
hexlet.io mail is handled by 10 alt4.aspmx.l.google.com.
hexlet.io mail is handled by 1 aspmx.l.google.com.
hexlet.io mail is handled by 10 alt3.aspmx.l.google.com.
hexlet.io mail is handled by 5 alt1.aspmx.l.google.com.
hexlet.io mail is handled by 5 alt2.aspmx.l.google.com.

Если такой адрес в файле hosts не найден, то будет передан запрос к службе DNS, которая, в качестве ответа, вернет адрес компьютера с сайтом.

Важно понимать, что DNS — это именно служба, а не конкретный сервер. Так как весь интернет зависит от стабильности работы этой системы, то в неё входит множество серверов по всему миру. Кроме того, DNS устроена таким образом, что нет центральной организации, управляющей этими серверами. Подробнее о DNS прочитайте в нашем гайде.

Хостинг

Интернет — это глобальная сеть, объединяющая огромное число устройств. К устройствам относятся далеко не только стационарные компьютеры и ноутбуки, но также и мобильные устройства, камеры, различные электронные и бытовые приборы. Хотя все эти устройства совершенно разные, они без проблем общаются друг с другом с помощью единого языка. Таким языком в мире машин стал стек протоколов TCP/IP. Не вдаваясь в детали, скажем, что протокол — это правила, по которым происходит общение. При этом природа общающихся устройств не важна.

Главным элементом в TCP/IP является IP-адрес. В версии IPv4 он выглядит так: 10.123.23.1. Четыре числа, разделённые точкой. У всех устройств, подключенных к сети напрямую, этот адрес уникальный. Фактически, любой запрос в интернете всегда обращается к какому-то IP-адресу, даже если вы этого не видите.

Среди компьютеров, подключённых к интернету, выделяется класс машин, которые выполняют роль серверов. Эти сервера, как правило, располагаются у хостеров, и именно они обслуживают многочисленные интернет сайты.

Серверные стойки

Хостер — это компания, предоставляющая услугу, называемую хостинг, то есть ресурсы для размещения и обслуживания сайта в интернете. Хостинг бывает очень разным, начиная от уже полностью готовой среды, в которую заливается код сайта, до железных серверов, которыми можно и нужно управлять самостоятельно.

Работает это обычно так: после регистрации на сайте хостера выбирается тариф, привязывается банковская карточка, и с вас списывается ежемесячная плата за обслуживание и дополнительные услуги. Взамен вы получаете доступ к вашим ресурсам, например, IP-адрес и пару логин/пароль для ssh- или ftp-доступа.

Однако есть и бесплатные хостинги, требующие только базовых знаний веб-разработки. Чтобы разместить свою страницу в интернете может быть достаточно возможностей бесплатного Github Pages и одной HTML-страницы. Там же можно получить домен третьего уровня или привязать собственный. Подробнее это рассматривается в наших профессиях в уроке Публикация в интернете.

Виды хостингов: On-Prem, IaaS, PaaS, SaaS

Вы можете использовать старый компьютер, как собственный хостинг, но придётся самостоятельно обеспечивать его постоянную доступность в интернете, защиту от атак и обновление софта. Такое решение будет называться On-Premises. Вместо рукопашки можно воспользоваться решениями “as Service”:

  • IaaS — Infrastructure as a Service, инфраструктура как услуга;
  • PaaS — Platform as a Service, платформа как услуга;
  • SaaS — Software as a Service, программное обеспечение как услуга.

Каждый термин означает разный уровень ответственности. В случае с Github Pages от вас требуется только написать HTML и загрузить его в сервис, остальное решается через интерфейс (панель управления), а вся “магия” происходит на стороне сервиса. Это решение SaaS.

Одно из популярных решений PaaS является Heroku, предоставляющая множество удобных бесплатных инструментов. Практический навык работы с Heroku студенты получают при работе над 4-м проектом в наших профессиях.

А среди популярных решений IaaS — это Amazon Web Services. Примечательно, что Heroku использует AWS для размещения ваших ресурсов, то есть выступает посредником, упрощая многие процедуры управления серверами.

Популярна визуализация этих решений на примере приготовления пиццы, где On-Prem требует наличия и ингредиентов, и инструментов, а SaaS представлен пиццерией, куда вы приходите чтобы съесть пиццу:

Пицца as service

Заключение

Итак, чтобы создать собственный сайт, вам понадобится домен, хостинг и курсы программирования. Выдачей доменов занимаются организации, именуемые регистраторами. На их сайте вы можете подобрать незанятый домен и оплатить его. После этого каждый год необходимо продление, иначе он вновь станет свободным, и его смогут купить другие. Затем, прямо там же у регистратора, вы можете настроить DNS, например, указать адрес вашего хостинга (в реальности все чуть сложнее, сначала надо указать NS-сервера), на котором находится сайт. Спустя примерно сутки ваш сайт начнёт открываться. Такой срок связан с тем, что информация о новой связке домен-адрес должна распространиться по всем DNS серверам по всему миру. Такая же история происходит и при изменении IP-адреса. Процесс может занять до суток.

Хостинг может быть простым и бесплатным, а может быть платным и требующим специальных знаний и навыков администрирования. Можно начать с размещения на бесплатном хостинге с бесплатным доменом. Но не следует путать регистраторов доменных имён и хостеров. Часто хостеры выступают как посредники и предлагают купить домены через себя, но, в общем случае, регистраторы — это отдельные компании, которые никак не связаны с хостингом.

А получить все необходимые навыки программирования и работы с веб-приложениями можно с нашими наставниками в одной из профессий: https://ru.hexlet.io/professions

Исходный код (github)
Кирилл Мокевнин
comments powered by Disqus