1. «Работает у меня» ≠ «открывается у всех»
— Смотри, у тебя ровно та самая классика, — Лёха заходит не с терминов, а с того, что Тёма уже прожил утром. — Собрал страницу, у тебя в браузере — красота. Скидываешь кому-нибудь «зацени» — а он: «не открывается». Знакомо?
— Прям сегодня, — Тёма морщится. — У меня лендинг есть, а для Антона его как бы и нет.
— Вот. И это не глюк, это закон. «Работает у меня» и «открывается у всех» — это две совершенно разные вещи. Пока ты этого не развёл, фраза «выложить сайт в интернет» для тебя пустой звук, набор слов.
— Ну так а где он должен лежать, чтоб у всех? — Тёма не понимает. — Не у меня на ноуте — а где?
— Вот это правильный вопрос. С него и начнём разбирать, что вообще такое интернет. После этого «выложить» перестанет быть магией.
2. Сервер — это просто всегда включённый компьютер
— Главное слово тут — сервер. Тёма, забудь страшное. Сервер — это не загадочная коробка с лампочками. Это просто компьютер, который всегда включён и держит файлы доступными для других людей.
— Всегда включён? Прям совсем?
— Совсем. В этом весь смысл. Твой ноутбук ты вечером закрыл, в сумку убрал, домой унёс — всё, он спит, он с тобой. Никому он сайт раздать не может. А сервер стоит где-то в дата-центре, гудит себе круглосуточно, и любой человек в любой момент может к нему обратиться и забрать файлы. Он для того и существует — быть на связи, когда тебя нет.
— Стоп, — перебивает Тёма. — Не сходится. Я ж в мессенджере другу картинку кидаю — и она доходит. Мой телефон ему её и отдаёт. Зачем тут какой-то сервер ещё.
— А вот тут ты и попался, — Лёха явно рад вопросу. — Думаешь, картинка летит с твоего телефона прямо ему в руки? Нет. Сперва она грузится на сервер мессенджера, и уже оттуда — ему. Поэтому ты можешь отправить картинку, выключить телефон и пойти спать, а друг откроет её через два часа и всё равно получит. Если бы вы оба обязаны были быть в сети одновременно — ничего б не работало. Сервер для того и стоит посередине: всегда включённый, всегда готов отдать.
— То есть и там, где я думал, что все работает без всякого сервера, — он всё равно есть.
— Всегда есть. Просто его не видно. Поэтому запомни главное: чтобы страницу видели все и всегда, её файлы должны лежать не на твоём ноутбуке, а на сервере — на машине, которая никогда не выключается. Вот и вся завязка.
Тёма переваривает. Раньше думал про интернет как про какое-то общее облако, куда вещи попадают сами. А оказывается — просто другой компьютер, который не спит. До странного приземлённо.
3. Два адреса: цифры для машин, имя для людей
— Раз серверов много, к нужному надо как-то обратиться. По адресу, — продолжает Лёха. — И адресов, прикинь, два вида — но это та же пара, как у обычного дома.
— А зачем два-то? — не понимает Тёма. — Один же проще.
— Затем, что один для машин, другой для людей. Первый — IP. Это числовой адрес, типа 192.0.2.1. Точный, но для человека нечитаемый — голые координаты цифрами. Компьютеры между собой общаются именно так, им буквы не нужны.
— Ну цифры так цифры. А второй тогда какой?
— Второй — домен. Человеческое имя сервера, вроде javarush.com. Его легко запомнить, легко набрать. Это как вывеска. Ты же не говоришь другу «встретимся у здания по координатам пятьдесят сорок пять, тридцать пятьдесят два». Ты говоришь «у кофейни Чика на углу». Домен — та самая вывеска/название вместо координат.
— Погоди, а как они между собой связаны-то? — цепляется Тёма. — Имя и цифры.
— За кулисами домен автоматически превращается в IP. Ты набираешь удобное имя, а под капотом оно разворачивается в те самые цифры, по которым машины друг друга находят. Тебе достаточно знать имя — остальное делается само.
4. Path — какой именно файл на сервере
— Ещё одно слово, и с адресами закончим. На сервере обычно лежит куча файлов. Как сказать, какой именно нужен? К адресу добавляют path — путь.
Лёха показывает на экране три строчки подряд:
192.0.2.1 # IP — числовой адрес сервера
example.com # домен — то же место, но с человеческим именем
example.com/home/about.html # path — какой именно файл на этом сервере
— Возвращаемся к дому, — продолжает Лёха. — Домен — это здание. А path — какой прилавок внутри здания. example.com/home/about.html читается так: «на сервере example.com открой файл home/about.html». То есть адрес сайта — не магическая строка, а две понятные части: чьё это место и куда именно внутри идти.
— А этот home/about.html — он откуда берётся?
— А это буквально путь к файлу на диске сервера. Так изначально и было задумано: на сервере папка home, в ней файл about.html, ты по адресу прямо на него и попадаешь. У современных сайтов многие файлы на лету генерируются, но логика та же — адрес файла ведёт к конкретному месту, как папка на твоём компе.
Тёма сам подводит итог, по привычке:
— То есть домен — это имя компьютера в сети, а path — что именно там взять и где.
— Упрощенно конечно, но все верно.
5. Хостинг — сервер напрокат
— Так, стоп, — Тёма напрягается. — Сервер, дата-центр... у меня нет никакого сервера в дата-центре. И денег на него нет. Как я тогда выложу-то?
— А вот тут хорошая новость, — Лёха явно ждал этого. — И не надо. Есть хостинг. Это сервис, который делает всю серверную часть за тебя. Смотри, как просто: ты отдаёшь ему свои файлы — свою страницу. Он кладёт их на свой сервер, тот самый всегда включённый. И возвращает тебе публичную ссылку. Всё.
— И всё? Никакого администрирования?
— Никакого. Не надо строить дата-центр, не надо становиться системным админом, не надо ничего настраивать в железе. Для простой статической страницы вроде твоего лендинга есть бесплатные хостинги: отдал файлы — получил ссылку — готово. И эту ссылку уже можно слать кому угодно. Антон откроет с телефона, заказчик откроет со своего, кто угодно откроет.
У Тёмы заметно расслабились плечи. Самое неприятное слово — «сервер в дата-центре» — оказалось чужой заботой. Его дело — отдать файлы и забрать ссылку.
6. Деплой — выкладываем файлы наружу
— И теперь — главное слово дня, ради него всё и затевалось. Деплой. От английского deploy. По-человечески это копируешь свои файлы туда, где они доступны не только тебе — с твоего ноутбука на сервер хостинга.
— Копируешь, — повторяет Тёма. — То есть файл буквально копируется куда-то в дата-центр?
— Копия файла загружается и сохраняется на всегда-включённую машину. И вот теперь вернёмся к твоей утренней загадке. Почему у тебя работает, а у Антона нет? Потому что пока страница лежит только на твоём ноутбуке — она доступна только тебе. Антон в твой комп залезть не может, и слава богу. А как только ты сделал деплой — скопировал файлы на хостинг — страница оказалась на сервере с публичным адресом. И теперь её открывает кто угодно.
Лёха выводит на экран то самое различение, которое Тёма утром нащупал интуитивно, а теперь видит словами:
«Работает у меня (локально)» ≠ «открывается у всех (наружу)»
— Запомни это крепко, это просто, но важно. Локально — это на твоей машине, для тебя одного. Наружу — это на сервере, для всех. А деплой — мост между этими двумя состояниями. Именно его ты сегодня и построишь. Выложишь лендинг так, что Антон откроет ссылку со своего телефона.
Тёма смотрит на стрелочку между «локально» и «наружу» и понимает, что вся утренняя паника была про этот один мостик, которого он не видел. «Выложить сайт в интернет» перестало быть заклинанием. Это понятное действие: скопировать файлы на сервер хостинга и забрать ссылку для всех. Осталось — сделать.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ