Создадим папку на компьютере, назовём её 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. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.

Веб‑разработка
Отправить
Поделиться
Запинить

Рекомендуем другие советы