Клиент серверная архитектура по-простому

Вы когда-нибудь задумывались, что происходит, когда отправляете сообщение в мессенджере, листаете ленту с социальной сети или ищите видео на Youtube?

‼️За всем этим стоит важная концепция мира ИТ - клиент-серверная архитектура.

Предлагаю разобраться, что это такое и как устроено.

На самом высоком уровне абстракции у нас есть два понятия:

Клиент - это вы и ваше устройство. Сервер - это мощный компьютер, который находится где-то далеко, производит какие-то вычисления, хранит и обрабатывает данные

📎Представьте ситуацию - вы пришли в ресторан пообедать.

Так вот, в таком случае: ▪️Клиент - вы, сидящий за столиком с меню ▪️Сервер - кухня, на которой готовится еда ▪️Посредник между клиентом и сервером - официант, он передает ваш заказ на кухню ▪️Интернет - пространство, в котором официант перемещается по пути на кухню ▪️Запрос на сервер - ваш заказ, например, "приготовить стейк" ▪️Ответ сервера - готовый стейк, который вам принесет официант

Соответственно, вы, как "клиент" не ходите самостоятельно на кухню, чтобы там приготовить выбранное блюдо, а делаете заказ через официанта, то есть отправляете запрос на кухню. Вам потом просто приносят готовый заказ - ответ на ваш запрос.

❓Как это устроено в мире ИТ технологий?

📱Клиент - например, приложение в вашем телефоне: мессенджер, браузер, игра, приложение для соц. сети.

➡️Задача такого приложения показывать вам красивый, удобный интерфейс и давать возможность нажимать кнопки, прокручивать ленту, отправлять сообщения.

Иными словами

  • клиент в вашем телефоне отображает какую-то информацию с сервера, а также позволяет эти данные редактировать или добавлять новые. Все перечисленные действия являются по сути запросами на серверное приложение (помните официанта, который передает заказ на кухню?)

Пример:

  • когда вы нажимаете "Отправить сообщение" в мессенджере, клиентской приложение формирует запрос "Пользователь Х хочет отправить сообщение Y пользователю Z" - и оно в итоге будет отправлено на сервер.

💻Сервер - скрытая часть, клиент-серверной архитектуры.

Это один или больше мощных компьютеров, находящихся где-то в сети Интернет.

➡️Задача сервера:

  • Принять запрос от клиента
  • Обработать его (найти данные в базе, сохранить сообщение, проверить логин/пароль)
  • Отправить результат клиенту

Пример:

  • сервер получает запрос на отправку сообщения, сохраняет его в своей базе данных и пересылает клиенту пользователя Z, а пользователя X уведомляет об успехе отправки.

Части современных клиент-серверных приложений взаимодействуют через Интернет, отправляя постоянно друг другу "письма" - запросы и ответы.

Наверное, если совсем упростить, то можно сказать так:

  • клиент - ничего не знает и не хранит, а только отображает или просит что-то сделать;
  • сервер - много всего знает и хранит, чтобы постоянно обрабатывать просьбы клиента, при этом находится где-то далеко от клиента;
  • Интернет - логистические пути коммуникации клиента с сервером

Мне кажется, круто, понимать хотя бы базово такие вещи, ведь они фундамент современного Интернета и того, чем мы пользуемся каждый день!

Ставь реакцию, если понравилась статья 😉

Клиент серверная архитектура по-простому | Сетка — социальная сеть от hh.ru