Начальный ~18 мин чтения

Клиент и сервер

Урок 1 из 4 в курсе Как работает интернет

Клиент и сервер

интернет строится вокруг обмена запросами и ответами между клиентами и серверами.

Почему это важно: Это базовая модель почти для всего веба. Пока не ясно, кто именно инициирует запрос, кто хранит данные и кто принимает решение, невозможно по-настоящему понять ни API, ни базы данных, ни аутентификацию.

Главная идея

Клиент инициирует обращение за данными, а сервер принимает запрос, обрабатывает его и возвращает результат.

Как это выглядит на практике

  1. Пользователь открывает браузер и вводит адрес сайта.
  2. Браузер выступает клиентом и формирует запрос к удалённому серверу.
  3. Сервер получает запрос, подбирает нужные данные или генерирует страницу.
  4. Ответ возвращается обратно клиенту, и браузер показывает результат пользователю.

Что происходит под капотом

  • Клиентом считается не человек, а программа, которая умеет отправлять сетевые запросы: браузер, мобильное приложение, CLI-утилита или другой сервис.
  • Сервер обычно слушает определённый порт и ждёт входящие соединения, а затем передаёт запрос приложению: например, Rails, Node.js или Go-сервису.
  • Внутри серверной части один запрос часто проходит через несколько слоёв: роутинг, middleware, контроллер, сервисный слой, базу данных и шаблон или сериализатор.
  • Один и тот же сервер может обслуживать разные типы клиентов: браузеры, мобильные приложения, cron-задачи и другие backend-сервисы.

Типичные ошибки и заблуждения

  • Ошибка: клиент — это обязательно браузер. На практике клиентом может быть любой потребитель API.
  • Ошибка: сервер — это всегда одна физическая машина. Часто за одним доменом скрывается кластер, контейнеры или облачная платформа.
  • Ошибка: если логика написана на frontend, сервер уже не нужен. На деле сервер отвечает за данные, безопасность и общий контракт.
  • Ошибка: сервер просто 'отдаёт файлы'. Во многих приложениях он ещё валидирует данные, считает бизнес-правила и работает с очередями.

Ключевые выводы

  • Клиентом может быть браузер, мобильное приложение или другой сервер.
  • Сервер хранит данные, бизнес-логику или API, доступные по сети.
  • Один backend часто обслуживает много разных клиентов одновременно.
  • Любой пользовательский интерфейс в итоге упирается в обмен сообщениями между клиентом и сервером.

Термины урока

Клиент: программа, которая инициирует запрос.
Сервер: программа или машина, которая принимает запросы и отвечает.
Запрос: сообщение клиента с просьбой выполнить действие или вернуть данные.
Ответ: результат обработки запроса со стороны сервера.

Связь с работой backend-разработчика

Любой backend-сервис по сути живёт на стороне сервера: он принимает входящие запросы, валидирует данные, работает с базой и возвращает клиенту понятный ответ.

Мини-разбор реальной ситуации

Представьте форму логина. Браузер отправляет email и пароль на сервер. Сервер проверяет пользователя в базе, создаёт сессию или выдаёт токен и возвращает ответ. Если думать только в терминах интерфейса, легко упустить, где именно происходит проверка прав и хранение пользовательского состояния.

Что запомнить

  • Клиент начинает диалог, сервер на него отвечает.
  • Один сервер может обслуживать много разных клиентов.
  • Backend — это не абстракция, а конкретная сторона клиент-серверного взаимодействия.

Итог

Если вы понимаете роли клиента и сервера, дальше проще разбирать HTTP, API и внутреннюю логику веб-приложений.