Создадим папку на компьютере, назовём её cat. Закинем в неё фотографию котика с именем файла cat.jpg. Создадим в папке файл index.html, откроем его в текстовом редакторе и напишем:
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Мой кот</title>
</head>
<body>
<h1>Мой замечательный кот</h1>
<img src="cat.jpg">
</body>
</html>
Это — код на языке ХТМЛ. Браузеры используют его, чтобы показывать страницы в вебе. Перетащим этот файл в окно браузера — программы просмотра веб‑страниц:
Чтобы показать эту страницу, браузер «скачал», то есть получил содержимое index.html, наткнулся в нём на упоминание cat.jpg и также скачал его. Затем, получив всё необходимое, нарисовал текст и картинку в своём окне.
Веб‑сервер
Теперь представим, что мы взяли эту папку и положили её на другой компьютер, который всегда включён и подключён к интернету. Этот компьютер — сервер, грубо говоря, мощный компьютер без монитора, включённый 24/7.
Если установить и настроить на этом сервере программу, называемую веб‑сервер, то загруженная нами папка станет доступа всем в интернете. Веб‑сервер — это программа, которая по запросу клиента в интернете отдаёт нужные ему файлы с сервера.
Веб‑сервер можно установить и на свой собственный компьютер. Это отличный способ проверить, как сайт увидят пользователи в интернете.
Адреса в интернете
К установленному веб‑серверу можно обратиться по адресу вида:http://185.175.47.108:80/cat/index.html
Набор цифр 185.175.47.108
— это айпи‑адрес, адрес компьютера в интернете, число после двоеточия — номер порта, на котором настроен отвечать веб‑сервер, а /cat/index.html
— это путь к тому, что мы хотим получить. Грубо говоря, айпи‑адрес — это адрес отделения банка, порт — номер окошка, в котором сидит и слушает нужный нам консультант, а путь — суть нашего обращения к нему.
Айпи‑адрес есть у каждого сервера в интернете. Для удобства айпи‑адреса привязывают к более понятным адресам вида bureau.ru
с помощью ДНС — «телефонной книги» всего интернета, отвечающей за поиск и перевод адресов:bureau.ru → 185.175.47.108
В моём примере айпи‑адрес 192.168.1.38
— это адрес моего компьютера в домашней вайфай‑сети. Адреса, начинающиеся с 192.168
, 100.64
, 172.16
и 10.
называют внутренними, частными или локальными. Их не используют в интернете, они предназначены для локальных сетей.
Отдельный «магический» адрес — это 127.0.0.1
, он же localhost
. По этому адресу компьютер обращается сам к себе. Он доступен всегда, даже когда компьютер не подключён ни к одной сети. Его часто используют, чтобы проверить, как сайт увидят пользователи в интернете. Устанавливают веб‑сервер на свой компьютер и обращаются к нему по адресам вида:http://localhost:80/
На сервере может работать не только веб‑сервер, но и другие программы, которым нужен доступ к сети. Чтобы компьютеры понимали, как и где с ними связаться, программы разносят по разным портам. Например, 80 и 443 порты заняты веб‑серверами, на 25 порту работают программы, отвечающие за отправку почты, а на 110 — за её получение.
Браузеры считают 80 и 443 порты стандартными для веба, поэтому мы не видим их в адресной строке и не указываем, когда переходим по ссылкам на сайты. Когда мы пишем в адресной строке bureau.ru
, браузер под капотом разворачивает адрес в http://bureau.ru:80/
.
Если запустить веб‑сервер на нестандартном порту, например, на 8080, то и обращаться к нему придётся, всегда указывая номер порта. И конечно, браузер покажет нестандартный порт в адресной строке.
Все браузеры умеют обращаться к серверам через интернет, поэтому если мы введём адрес нашего сервера в браузере, а веб‑сервер будет запущен и будет слушать указанный порт, то браузер точно так же скачает index.html и cat.jpg, но не из нашей папки на рабочем столе, а с сервера:
http://192.168.1.38:80/cat/
, браузер скрыл стандартные штуки и превратил его в 192.168.1.38/cat/
Обратите внимание, что в адресе нет index.html. Это стандартное поведение веб‑серверов. Если браузер запрашивает папку, веб‑сервер ищет в ней файл с именем index.html и отдаёт его, если находит. Если такого файла нет, веб‑сервер показывает содержимое папки ссылками — но это поведение по умолчанию можно перенастроить.
О том, как в таких условиях работают вход на сайте и персональные рекомендации, я расскажу в следующих советах
Веб‑сервер не запоминает клиентов и историю взаимодействия с ними, каждый запрос обрабатывается «с чистого листа». Пришёл запрос на /cat/
от браузера, веб‑сервер прочитал и отправил index.html в ответ, пришёл запрос на /cat/
от умного телевизора — прочитал и отправил тот же index.html в ответ. Неважно, кто и сколько раз запросил /cat/
и что делал на странице, ответ будет один и тот же.
О том, как в таких условиях работают вход на сайте и персональные рекомендации, я расскажу в следующих советах
Если мы хотим показывать разным клиентам разные страницы с помощью веб‑сервера, придётся разделить их по адресам. Скажем, мы делаем сайт с приглашениями на наш день рождения. Если у нас на сервере установлен только веб‑сервер, то самый простой способ сделать приглашения персональными — понаделать копий с разными именами и раскидать их по папкам:
/birthday2025/artem/
/birthday2025/misha/
/birthday2025/anya/
В следующем совете расскажу о серверах приложений и серверах баз данных. С помощью них веб‑сервер показывает разное содержимое разным клиентам по одному и тому же адресу.
P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.