← Все вопросы

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

Задан 9 месяцев назад1.3к просмотров2 ответа
8

Постоянно встречаю термин «клиент-серверная архитектура» в описании веба, баз данных, мессенджеров. Можете объяснить на пальцах, что это такое, кто такой клиент, кто сервер и как они общаются?

2 ответа

14
✓ Принятый ответ — помог автору

Клиент-серверная архитектура — это модель, где есть две роли:

  • Сервер — программа (или машина), которая хранит данные/ресурсы и ждёт запросов, обслуживая их. Он всегда «на связи».
  • Клиент — программа, которая инициирует запрос к серверу и получает ответ.

Клиент спрашивает — сервер отвечает. Клиенты между собой напрямую не общаются, всё идёт через сервер.

Самый понятный пример — открыть сайт:

  1. Браузер (клиент) отправляет HTTP-запрос: «дай страницу /about».
  2. Веб-сервер принимает запрос, находит/генерирует страницу.
  3. Сервер шлёт обратно HTTP-ответ с HTML.
  4. Браузер рисует страницу.

То же самое в мессенджере: ваше приложение (клиент) шлёт сообщение на сервер, сервер сохраняет его и доставляет другому клиенту.

Плюсы модели:

  • централизованное управление данными и доступом;
  • легко обновлять логику в одном месте (на сервере);
  • клиент может быть «тонким» и простым.

Минусы:

  • сервер — единая точка отказа (упал сервер — упали все);
  • нагрузка растёт с числом клиентов, сервер надо масштабировать.

Почти весь привычный интернет (веб, почта, базы данных, API) построен по этой модели.

5

Аналогия из жизни: клиент-сервер — это ресторан. Вы (клиент) делаете заказ официанту, кухня (сервер) его готовит и отдаёт. Вы не идёте сами на кухню и не общаетесь напрямую с другими посетителями — всё через обслуживающую сторону. Один сервер (кухня) обслуживает много клиентов (столиков) одновременно.

Ваш ответ

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