Что происходит, когда ты открываешь сайт
Вы открываете браузер, набираете адрес сайта, жмёте Enter — и через секунду перед вами страница. Кажется, что это магия. На самом деле за этой секундой стоит чёткая последовательность шагов, и каждый из них можно объяснить обычными словами, без единого технического термина.
Этот урок — самый первый в курсе про сети. Мы пока ничего не будем измерять, ничего не настраивать и не запоминать сложных слов. Задача простая: получить картинку в голове. Когда вы увидите, что происходит «в целом», все дальнейшие детали лягут на эту картинку, как кусочки пазла. А деталей дальше будет много — и это нормально.
Аналогия, которая будет помогать нам весь урок: открыть сайт — это как заказать книгу из библиотеки в другом городе. Вы не идёте туда сами. Вы говорите кому-то адрес, ваш запрос едет по дороге, библиотека находит книгу и присылает её обратно. Точно так же работает и сайт — только вместо книги вам присылают страницу, и происходит это за доли секунды.
Шаг 0: что вообще такое «сайт»
Сначала развеем главное недоразумение. Сайт не «живёт» в вашем компьютере. Когда вы открываете, например, новостной портал, ваш компьютер не хранит этот портал внутри себя. Страница лежит на другом компьютере — большом, мощном, который работает круглосуточно и стоит где-то в специальном здании (дата-центре). Этот «другой компьютер» мы будем называть сервером.
Ваш же компьютер (или телефон) в этой истории — тот, кто просит. Его называют клиентом. Запомните пока только это: один просит (клиент), другой отдаёт (сервер). Всё остальное — детали того, как именно просьба доходит туда и обратно.
То есть открыть сайт — значит попросить у далёкого сервера копию страницы и получить её к себе. Никакого волшебства: это пересылка данных от одного компьютера к другому.
Шаг 1: вы набрали адрес
Вы вводите в браузер что-то вроде example.com. Это адрес — но адрес «для людей». Его удобно прочитать и запомнить, как название улицы.
Проблема в том, что компьютеры между собой не общаются названиями. Им нужен адрес «для машин» — набор цифр, который точно указывает на нужный сервер. Такой цифровой адрес называется IP-адрес (мы подробно разберём его в следующем уроке; пока достаточно знать, что это «номер дома» сервера в сети).
Аналогия: вы говорите таксисту «Третьяковская галерея». Таксист не едет к слову «Третьяковская» — он знает (или ищет), что это конкретный адрес: такая-то улица, такой-то дом. Имя для людей, точный адрес для навигации.
Шаг 2: компьютер находит сервер
Раз вы назвали имя, а не цифры, компьютеру сначала нужно превратить имя в цифровой адрес. Для этого он спрашивает у специальной «справочной службы» интернета: «Какой IP-адрес у example.com?»
Эта справочная отвечает: «Вот такой-то». Теперь ваш компьютер знает, куда именно отправлять просьбу.
Эта справочная служба называется DNS. Запоминать сейчас не нужно — ей посвящён отдельный большой модуль дальше в курсе. Сейчас важно только одно: имя надо превратить в адрес, и для этого есть кто-то, кто подсказывает.
Аналогия: вы знаете имя человека, но не знаете его телефон. Вы заглядываете в телефонную книгу (или спрашиваете у справочной), находите номер — и только теперь можете позвонить. DNS — это и есть телефонная книга интернета.
Шаг 3: компьютер просит страницу
Теперь ваш компьютер знает точный адрес сервера и отправляет туда просьбу. Просьба простая по смыслу: «Привет, пришли мне, пожалуйста, главную страницу сайта example.com».
Эта просьба не телепортируется. Она едет по сети — через провод или Wi-Fi до вашего роутера, оттуда к провайдеру, дальше через множество промежуточных узлов по стране и миру, пока не доберётся до нужного сервера. Каждый из этих узлов выполняет одну работу: посмотреть, куда дальше, и передать просьбу ближе к цели. Как почтовые отделения, которые перекидывают письмо от города к городу, пока оно не дойдёт до адресата.
Важно, что путь не обязан быть прямым и одинаковым каждый раз. Сеть сама выбирает дорогу. Если какой-то участок занят или сломан — найдётся обходной. Вам об этом думать не нужно: вы просто отправили просьбу, а доставку берёт на себя сеть.
Шаг 4: сервер отвечает
Сервер получает вашу просьбу, понимает «а, у меня просят главную страницу», находит её у себя и отправляет обратно — тем же способом, по сети, через промежуточные узлы, к вам.
То, что присылает сервер, — это не картинка целиком, а текст-описание страницы: какие на ней заголовки, какой текст, где какие картинки и кнопки, какими цветами всё раскрасить. Этот текст-описание называют кодом страницы (HTML и сопутствующие файлы). Браузер — это программа, которая умеет читать такое описание и рисовать по нему нормальную страницу, которую видите вы.
Аналогия: библиотека прислала вам не готовую полку с книгой, а саму книгу плюс инструкцию «поставь сюда, обложку покажи такую». Браузер читает инструкцию и аккуратно раскладывает всё на экране.
Шаг 5: страница собирается на экране
Часто одной страницы недостаточно за один раз. В присланном описании браузер видит: «а ещё мне нужны вот эта картинка, вот этот шрифт и вот этот файл со стилями». И тогда он отправляет ещё несколько таких же маленьких просьб — по одной на каждый недостающий кусочек. Сервер (или другие серверы) присылают эти кусочки, браузер их собирает — и страница постепенно «дорисовывается».
Вот почему иногда видно, как сайт грузится частями: сначала текст, потом картинки. Каждый кусочек — это отдельная маленькая просьба и отдельный маленький ответ. Всё это происходит так быстро, что обычно мы не замечаем.
Соберём всю историю в один список, по шагам:
1. Вы набрали имя сайта (адрес для людей)
2. Компьютер узнал IP-адрес (адрес для машин, через "справочную")
3. Компьютер отправил просьбу ("пришли мне страницу")
4. Просьба доехала до сервера (через промежуточные узлы сети)
5. Сервер прислал ответ (описание страницы + кусочки)
6. Браузер нарисовал страницу (собрал всё на экране)
Вся эта цепочка укладывается, как правило, в доли секунды. Когда страница открывается «мгновенно» — это значит, что все шесть шагов прошли успешно и быстро.
А если что-то пошло не так
Иногда страница не открывается. Полезно понимать, на каком шаге могла случиться заминка — даже на бытовом уровне:
- Если компьютер не смог узнать адрес сервера — это сбой на шаге 2 («справочная не ответила» или имя неправильное).
- Если просьба ушла, но ответа нет — возможно, сервер выключен или перегружен (шаг 4-5).
- Если интернета нет совсем — просьба даже не выехала со двора (нет связи на шаге 3).
Пока не нужно уметь это чинить. Достаточно понимать: «не открывается» — это не одна абстрактная проблема, а сбой на одном из конкретных, понятных шагов. Дальше в курсе мы научимся точно определять, на каком именно.
[!note] Заметьте: мы рассказали всю историю целиком и ни разу не использовали слова вроде «TCP», «пакет» или «протокол». Это специально. Сначала — общая картинка обычными словами. Точные технические названия для этих же шагов появятся уже в следующих уроках, и вам будет, на что их «повесить».
Попробуй сам
Запускать команды в этом уроке не нужно — хватит браузера, который у вас уже открыт.
- Откройте любой знакомый сайт и проследите за собой: вы набрали имя (шаг 1), нажали Enter — и где-то между этим и появлением страницы прошли все остальные шаги. Попробуйте проговорить их вслух своими словами.
- Откройте сайт, которого точно не существует, например
этого-сайта-точно-нет-12345.com. Браузер покажет ошибку. Подумайте: на каком из шести шагов, скорее всего, всё застряло? (Подсказка: компьютер не смог найти адрес такого сервера — шаг 2.) - Откройте «тяжёлый» сайт с большим количеством картинок на медленном соединении и понаблюдайте, как он собирается по частям. Каждая появляющаяся картинка — это отдельный завершившийся кусочек из шага 5.
Никаких правильных «ответов в консоли» здесь нет — цель в том, чтобы привычное действие стало для вас осознанной последовательностью шагов.
Итог
Открыть сайт — значит попросить у далёкого компьютера (сервера) копию страницы и получить её к себе (на клиент). По дороге происходит шесть простых вещей: набрали имя, узнали цифровой адрес, отправили просьбу, она доехала, пришёл ответ, браузер нарисовал страницу.
В следующем уроке мы дадим имена всем участникам этой истории — сеть, сервер, клиент, IP-адрес, протокол, пакет — на простых аналогиях с почтой и адресами. А пока держите в голове главную картинку: кто-то просит, кто-то отдаёт, а сеть доставляет.