В технических вузах каждый айтишник, кто сдал экзамен по компьютерным сетям, как минимум, пару дней помнит, что происходит в системе, когда мы вводим в адресной строке браузера домен сайта и получаем его главную страницу. А вы знаете, что там происходит?
Полная схема достаточно сложна, но в общих чертах её стоит себе представлять каждому, чей бизнес связан с сайтом и интернетом, чтобы знать, как работает и из чего состоит этот маркетинговый инструмент.
Непосредственно сайт
В давние времена сайты состояли только из статических HTML-страниц, и внесение изменений было тяжёлым рутинным трудом, который требовал высокой квалификации.
С такими сайтами было сложно работать, поэтому появились системы управления сайтами - CMS (Content Management System), среди которых общемировое лидерство стоит за WordPress с долей 60%. Менее популярны RoCMS, Joomla, Drupal, OpenCart и сотни других продуктов.
Появление CMS удешевило разработку и управление контентом, а ещё обеспечило шаблонизацию, благодаря которой все страницы сайта автоматически выглядят в едином стиле.
Современный сайт - это большая и сложная программа, которая состоит из административной части - панели управления, и пользовательской - той, которую видят посетители. Сайт существует как бы внутри CMS и хранится в виде файлов CMS и базы данных (обычно MySQL или MS SQL).
Для корректной работы нужно разместить файлы CMS, поднять базу данных, связать файлы с базой данных и настроить веб-сервер. Сам веб-сервер - это программа, которая крутится на сервере - промышленном компьютере, который подключён к стабильному широкому интернет-каналу и на котором размещаются сайты и программное обеспечение.
Хостинг
Хостинг - это услуга аренды сервера у компании, которая на этом специализируется - хостинг-провайдера.
Сервер хостинг-провайдера - это то самое место, куда кладутся данные сайта в виде экземпляра CMS. На нём же настраивается веб-сервер, резервное копирование и всевозможные скрипты автоматизации. У сервера есть адрес - IP-адрес (IP - Internet Protocol) - по которому к нему можно обращаться. Примерно как почтовый адрес в реальном мире, только в интернете. IP-адреса есть у всех компьютеров, телефонов, маршрутизаторов и всех остальных устройств, которые подключены к интернету.
Существуют разные виды хостинга, которые подбираются в зависимости от нагрузки на сайт, его размеров и функциональности. Общее у них одно: это некий сервер или его часть, куда можно получить доступ через интернет и где можно что-то размещать.
Хостинг можно оплачивать как ежемесячно, так и более длительными периодами. Например, хостинг у провайдера Reg.ru можно оплатить сразу на 3 года.
Домен и DNS
Домен - это название вида synweb.ru или синвеб.рф. Домен покупается у компании-регистратора. Нередко регистраторы также предоставляют услуги хостинга, но в реальных проектах чаще встречаются конфигурации, когда регистратор домена и хостинг-провайдер - разные компании.
Для российских доменных зон (.ru, .рф, .su) период оплаты доменного имени установлен сроком строго в 1 год.
Сам по себе домен не имеет связи с хостингом, даже если на хостинге размещён сайт и прописаны все нужные настройки. Хостинг и домен связывает воедино технология DNS - Domain Name Service.
Технический специалист, разместив сайт на хостинге, делегирует (направляет) домен на DNS-сервера, в настройках которых заранее указывает, на каком сервере лежит сайт, ссылая таким образом доменное имя на хостинг, на котором размещается сайт. Грубо говоря, DNS-сервер - это большая таблица, где для каждого домена указан IP-адрес сервера, где хранится сайт.
Аналогичная процедура проводится для почты - чтобы у компании были почтовые ящики вида order@synweb.ru, нужно внести специальные записи в настройки DNS, указывающие на сервера поставщика услуги корпоративной электронной почты.
Как это всё связано
Когда посетитель набирает доменное имя в адресной строке сайта, его компьютер делает запрос к DNS-серверу в духе: “Он хочет сайт вот по этому домену, отправь мне адрес сервера, где находится этот сайт”.
DNS-сервер отправляет ответ, в котором указан адрес сервера с сайтом.
Далее компьютер посетителя “под капотом” делает запрос к этому серверу, ожидая в ответ страницу сайта. Сервер анализирует запрос, видит, что запрашивается сайт, который на нём лежит, и передаёт управление в CMS этого сайта, которая, в свою очередь, обрабатывает запрос, генерирует страницу и отсылает посетителю. Ну а пользователь видит долгожданную страницу и, возможно, недоумевает, почему она грузилась так долго, даже не представляя, как много всего на это время произошло.
Это очень грубое описание того, как браузер получает страницу. Технически подкованные читатели скажут, что эта схема слишком примитивна. И действительно, на самом деле деталей куда больше.
Более подробный алгоритм - ниже (если не хотите вникать в технические аспекты - можете пропустить список).
- Пользователь вводит адрес сайта, например, synweb.ru в адресной строке браузера.
- Браузер просматривает DNS-кэш, пытаясь быстро найти запись на локальной машине и близком сетевом окружении, чтобы не тратить время на полноценный DNS-запрос к удалённому серверу.
-
- Сначала браузер смотрит в системый файл hosts и ищет записи, прописанные администратором вручную.
- Затем он ищет в собственном DNS-кэше.
- Затем - в кэше операционной системы.
- Если в ОС нет записи, он запрашивает запись из кэша маршрутизатора.
- Если у маршрутизатора пусто, система делает запрос в кэш DNS-сервера интернет-провайдера пользователя.
- Если в кэшах ничего не нашлось, DNS-сервер интернет-провайдера инициирует DNS-запрос по записям домена synweb.ru. Таким образом, DNS-сервер, на который был делегирован домен synweb.ru, отправляет записи этого домена DNS-серверу интернет-провайдера, после чего эти записи сохраняются в кэшах маршрутизатора, операционной системы и браузера. На этом этапе браузер узнаёт, что имеет дело с сервером Синвеба, и даже знает, с каким именно.
- Браузер устанавливает соединение с веб-сервером по протоколу TCP с трёхкратным “рукопожатием” (TCP three-way handshake) на порту 80. Адрес веб-сервера указан в DNS-записи типа A для протокола IPv4, либо, если используется IPv6, адрес берётся из записи типа AAAA.
- Браузер отправляет HTTP-запрос типа GET веб-серверу, используя установленный в предыдущем шаге TCP-канал. В запросе указан адрес страницы, которую ожидает получить браузер (в нашем случае это http://synweb.ru). В этом же запросе содержится информация о самом браузере - например, что это Google Chrome версии 60 на Mac OS X Mojave. А ещё браузер вкладывает в запрос Cookies - записи, позволяющие идентифицировать пользователя, если он ранее был на сайте synweb.ru и входит снова.
- Веб-сервер получает GET-запрос, логирует (записывает в историю) и обрабатывает его. Сайт на домене synweb.ru использует шифрование SSL - теперь веб-сервер должен сообщить браузеру, что сайт работает на порту 443 и перенаправить его с протокола HTTP на защищённый HTTPS.
- Веб-сервер формирует и отправляет ответный пакет, присвоив ему код 301 “Moved Permanently” - сигнал о том, что сайт перемещён на постоянной основе с http://synweb.ru на https://synweb.ru.
- Браузер устанавливает зашифрованное TCP-соединение с веб-сервером на порту 443. Шифрование происходит по протоколу SSL с использованием SSL-сертификата Синвеба - благодаря этому посетитель точно знает, что это страница Синвеба, а не мошенника, который себя за него выдаёт, а Синвеб уверен, что посетитель - тот, за кого себя выдаёт, и его трафик не прослушивается и не модифицируется злоумышленником.
- Браузер отправляет HTTP GET-запрос, аналогичный описанному в п. 5, в этот раз используя шифрование.
- Веб-сервер расшифровывает запрос, обрабатывает его и анализирует Cookies в запросе. По кукам сервер понимает, кто делает запрос, авторизован ли посетитель в системе, какие у него права и что ему нужно показать.
- После обработки запроса веб-сервер формирует страницу, подписывая ответ кодом 200 - “OK”. Данные ответа шифруются и передаются посетителю.
- Браузер получает ответ, расшифровывает его, отрисовывает страницу, попутно скачивая все ресурсы, на которые она ссылается, и демонстрирует пользователю главную страницу сайта Синвеба.
Все эти шаги происходят абсолютно незаметно для пользователя меньше, чем за секунду. Каждый из шагов - это отдельный огромный алгоритм, в реализации которого задействованы много компьютеров и людей по всему миру. Цель оправдывает средства: пользоваться интернетом сегодня настолько просто, как не было никогда.
Теперь, я думаю, вы видите, что создание, размещение и обслуживание сайта - далеко не тривиальная задача для собственника бизнеса или руководителя. Ведь предприниматель или менеджер должен заниматься развитием бизнеса, а не решением компьютерных проблем.
Мы в Синвебе занимается техническим обслуживанием: размещаем сайты, настраиваем домены и хостинги, а также консультируем вас и ваших сотрудников по вопросам обслуживания сайта. Напишите нам, если вашему сайту требуется техобслуживание.