Начинаем с основ · урок 2

Клиент, сервер и база данных

Проследите путь запроса от браузера к серверу и базе данных, а затем обратно на экран.

Когда вы открываете профиль, магазин или страницу курса, браузер обычно не хранит всю нужную информацию сам.

Он обращается к другим частям приложения и просит их выполнить работу.

Упрощённо большинство веб-приложений можно представить как три части:

Клиент → Сервер → База данных

А полученный результат проходит путь обратно:

База данных → Сервер → Клиент

Клиент

Клиент — программа, с которой непосредственно взаимодействует пользователь.

Например:

  • браузер;
  • мобильное приложение;
  • десктопное приложение.

Когда вы нажимаете кнопку «Открыть профиль», браузер может отправить серверу запрос:

«Покажи данные моего профиля».

Клиент отвечает прежде всего за то, что видит пользователь и какие действия он отправляет системе.

Сервер

Сервер получает запрос от клиента и решает, что с ним делать.

Он может:

  • проверить, кто отправил запрос;
  • проверить, разрешено ли это действие;
  • обработать полученные данные;
  • обратиться к базе данных;
  • сформировать ответ.

Например, сервер может проверить, действительно ли пользователь вошёл в аккаунт, прежде чем отдавать ему сохранённый профиль.

Сервер часто содержит основную логику приложения — правила того, что разрешено и как должна работать система.

База данных

База данных используется для информации, которую необходимо сохранить.

Например:

makefile
1Пользователь
2Имя: Alex
3Пройдено уроков: 12
4Опыт: 450 XP

Даже если пользователь закроет браузер и вернётся завтра, эти данные должны остаться.

В базе могут храниться:

  • аккаунты;
  • настройки;
  • товары;
  • уроки;
  • прогресс обучения;
  • комментарии;
  • заказы.

Что такое запрос и ответ

Клиент и сервер обмениваются сообщениями.

Клиент отправляет запрос:

1Дай мне профиль пользователя

Сервер выполняет необходимые действия и возвращает ответ:

yaml
1Имя: Alex
2Уровень: 5
3XP: 450

После этого клиент отображает полученную информацию на экране.

Как открывается сохранённый профиль

Представим, что пользователь нажал кнопку «Мой профиль».

Происходит примерно следующее:

11. Браузер отправляет запрос
2 ↓
32. Сервер получает и проверяет его
4 ↓
53. Сервер запрашивает профиль в базе данных
6 ↓
74. База данных возвращает найденную запись
8 ↓
95. Сервер формирует ответ
10 ↓
116. Браузер показывает профиль

Важно: браузер обычно не подключается напрямую к рабочей базе данных.

Если позволить каждому клиенту самостоятельно изменять базу, пользователь потенциально смог бы попытаться изменить чужие данные или обойти правила приложения.

Именно сервер контролирует, какие операции разрешены.

Связь с предыдущим уроком

В первом уроке мы использовали модель:

Данные → Инструкции → Результат

Теперь мы можем увидеть её внутри веб-приложения:

Запрос пользователя → обработка на сервере → данные из базы → ответ пользователю

Позже мы увидим, что похожий принцип существует и в блокчейне, хотя устройство системы там будет другим.

Задание

Пользователь открывает сохранённый профиль.

Расположите действия клиента, сервера и базы данных в правильном порядке — от первого запроса до ответа браузеру.

Один из доступных блоков описывает действие, которого в нормальной архитектуре происходить не должно.

Схема

Расположите шаги от запроса клиента до ответа сервера.

Добавьте первый блок
Доступные блоки

Войдите, чтобы сохранить прохождение.