Клиент и сервер
интернет строится вокруг обмена запросами и ответами между клиентами и серверами.
Почему это важно: Это базовая модель почти для всего веба. Пока не ясно, кто именно инициирует запрос, кто хранит данные и кто принимает решение, невозможно по-настоящему понять ни API, ни базы данных, ни аутентификацию.
Главная идея
Клиент инициирует обращение за данными, а сервер принимает запрос, обрабатывает его и возвращает результат.
Как это выглядит на практике
- Пользователь открывает браузер и вводит адрес сайта.
- Браузер выступает клиентом и формирует запрос к удалённому серверу.
- Сервер получает запрос, подбирает нужные данные или генерирует страницу.
- Ответ возвращается обратно клиенту, и браузер показывает результат пользователю.
Что происходит под капотом
- Клиентом считается не человек, а программа, которая умеет отправлять сетевые запросы: браузер, мобильное приложение, CLI-утилита или другой сервис.
- Сервер обычно слушает определённый порт и ждёт входящие соединения, а затем передаёт запрос приложению: например, Rails, Node.js или Go-сервису.
- Внутри серверной части один запрос часто проходит через несколько слоёв: роутинг, middleware, контроллер, сервисный слой, базу данных и шаблон или сериализатор.
- Один и тот же сервер может обслуживать разные типы клиентов: браузеры, мобильные приложения, cron-задачи и другие backend-сервисы.
Типичные ошибки и заблуждения
- Ошибка: клиент — это обязательно браузер. На практике клиентом может быть любой потребитель API.
- Ошибка: сервер — это всегда одна физическая машина. Часто за одним доменом скрывается кластер, контейнеры или облачная платформа.
- Ошибка: если логика написана на frontend, сервер уже не нужен. На деле сервер отвечает за данные, безопасность и общий контракт.
- Ошибка: сервер просто 'отдаёт файлы'. Во многих приложениях он ещё валидирует данные, считает бизнес-правила и работает с очередями.
Ключевые выводы
- Клиентом может быть браузер, мобильное приложение или другой сервер.
- Сервер хранит данные, бизнес-логику или API, доступные по сети.
- Один backend часто обслуживает много разных клиентов одновременно.
- Любой пользовательский интерфейс в итоге упирается в обмен сообщениями между клиентом и сервером.
Термины урока
Связь с работой backend-разработчика
Любой backend-сервис по сути живёт на стороне сервера: он принимает входящие запросы, валидирует данные, работает с базой и возвращает клиенту понятный ответ.
Мини-разбор реальной ситуации
Представьте форму логина. Браузер отправляет email и пароль на сервер. Сервер проверяет пользователя в базе, создаёт сессию или выдаёт токен и возвращает ответ. Если думать только в терминах интерфейса, легко упустить, где именно происходит проверка прав и хранение пользовательского состояния.
Что запомнить
- Клиент начинает диалог, сервер на него отвечает.
- Один сервер может обслуживать много разных клиентов.
- Backend — это не абстракция, а конкретная сторона клиент-серверного взаимодействия.
Итог
Если вы понимаете роли клиента и сервера, дальше проще разбирать HTTP, API и внутреннюю логику веб-приложений.