Клиент-серверная архитектура: что это, как работает и где применяется
По схеме информационной системы можно понять, где выполняется обработка, как связаны ее компоненты и какие задачи приходятся на серверную часть. Это особенно важно, когда нужно оценить устройство приложения вместе с требованиями к инфраструктуре.
Разберем путь данных от пользовательской программы до серверных служб и покажем, как программная структура соотносится с физическим оборудованием.
В этой статье:
- Что такое клиент-серверная архитектура и из чего состоит
- Какие бывают клиенты
- Как клиент взаимодействует с сервером
- Где применяется такая модель
- Какие уровни архитектуры используются
- Как архитектура связана с серверным оборудованием
- Преимущества и ограничения
- Вопросы и ответы
Что такое клиент-серверная архитектура и из чего состоит
Клиент-серверная архитектура — модель построения информационной системы, в которой клиент обращается за данными или выполнением операции, а сервер обрабатывает запрос и возвращает результат.
Одна программа может принимать запросы от одних систем и сама обращаться к другим службам.
Какие компоненты могут входить в систему
В типичной сетевой реализации участвуют клиент, серверная служба, канал связи и протокол обмена. Другие компоненты появляются в зависимости от задач приложения.
| Компонент | Задача |
| Клиентское приложение | Формирует запрос и получает результат |
| Серверная часть | Обрабатывает обращения и выполняет предусмотренные операции |
| Сеть | Передает данные между сторонами |
| Протокол | Задает правила обмена сообщениями |
| База данных | Хранит данные, когда приложение использует СУБД |
| Службы доступа | Проверяют учетные данные и права пользователей |
Набор компонентов зависит от системы. Например, файловой службе отдельная СУБД может вообще не требоваться.
Какие бывают клиенты
Распределение обработки между рабочим устройством и серверной частью может быть разным. По этому признаку обычно выделяют тонкий и толстый клиент.
Тонкий клиент
Основная прикладная логика выполняется на серверной стороне. Пользовательское устройство в основном отвечает за интерфейс и передачу действий пользователя.
Толстый клиент
Значительная часть прикладной логики работает непосредственно на компьютере пользователя. Поэтому требования к рабочему месту зависят от объема локальных вычислений.
| Параметр | Тонкий клиент | Толстый клиент |
| Где выполняется обработка | Преимущественно на серверной стороне | Значительная часть выполняется локально |
| Требования к компьютеру | Обычно ниже | Зависят от объема локальной обработки |
| Зависимость от связи | Обычно выше | Зависит от устройства приложения |
| Обновление | Часть изменений можно выполнять централизованно | Может потребоваться обновление на рабочих местах |
Разделение условно. Многие приложения распределяют обработку между рабочим устройством и серверной частью.
Как клиент взаимодействует с сервером
После запуска операции программа определяет службу и передает ей данные в формате, который предусмотрен протоколом. Дальнейший путь зависит от устройства конкретной системы, но общая последовательность похожа.
1. Клиент определяет адрес
Для обращения нужен сетевой адрес узла, где работает требуемая служба. При обращении по доменному имени система разрешения имен определяет соответствующий
При работе поверх TCP или UDP также используется номер порта. Он позволяет определить нужную сетевую службу на узле.
2. Данные передаются по сети
Порядок передачи зависит от транспортного протокола. Например, TCP предусматривает установление соединения перед обменом данными, а UDP позволяет отправлять отдельные сообщения без такого этапа.
После этого прикладной протокол определяет структуру сообщений, которыми обмениваются программы.
3. Запрос содержит параметры операции
Состав сообщения зависит от назначения системы. В нем могут передаваться идентификатор ресурса, команда, параметры поиска, учетные данные или другая информация, необходимая для выполнения операции.
Формат таких сообщений различается у веб-приложений, СУБД, файловых и других сетевых служб.
4. Запрос проходит обработку
Полученные данные проверяются и передаются прикладной логике. При необходимости система обращается к базе данных, файловому хранилищу или другой службе.
На этом же этапе могут проверяться права доступа и корректность переданных параметров.
5. Результат возвращается по сети
Ответ содержит результат операции либо сведения об ошибке. Его структура также определяется используемым протоколом.
После получения данных программа продолжает работу: показывает результат пользователю, сохраняет его или использует в следующей операции.
Упрощенно путь можно представить так:
адрес службы → формирование запроса → передача по сети → обработка → ответ
Одна операция пользователя может включать несколько таких обращений, особенно когда приложение использует несколько связанных служб.
Как проходит обмен по HTTP
HTTP задает правила обмена запросами и ответами.
В запросе указываются метод, цель обращения и служебные поля. При необходимости передаются данные.
Ответ включает код состояния, служебные поля и данные, которые возвращает сервер. Например, код 200 означает успешную обработку запроса, а 404 сообщает, что запрошенный ресурс не найден.
Такой обмен может повторяться несколько раз в рамках одного действия пользователя. После получения основного документа приложение может запросить дополнительные данные, необходимые для его работы.

Где применяется такая модель
Такой принцип используют в системах, где пользователи работают с общими данными или получают доступ к функциям через центральную серверную часть.
| Область применения | Что размещается на серверной стороне | Для чего используется |
| Корпоративные информационные системы | Прикладная логика и рабочие данные | Совместная работа сотрудников в одной системе |
| 1С в клиент-серверном варианте | Кластер серверов 1С и база данных | Обработка прикладных операций и работа с информационной базой |
| Приложения в браузере | Серверная логика и связанные данные | Доступ к функциям через браузер |
| Системы управления базами данных | База данных и средства ее обработки | Централизованное хранение и выполнение запросов |
| Файловые службы | Общие каталоги и файлы | Совместный доступ к документам и другим данным |
| Электронная почта | Почтовые ящики и серверные службы | Прием, хранение и передача сообщений |
| Удаленные рабочие среды | Приложения или пользовательские сеансы | Работа с программами на серверных ресурсах |
Какие уровни архитектуры используются
Структура приложения зависит от того, как между его компонентами распределены интерфейс, прикладная логика и работа с данными. Обычно выделяют двухуровневую, трехуровневую и многоуровневую схемы.
Двухуровневая архитектура
Клиент обращается непосредственно к серверной части.
Один из распространенных вариантов двухуровневой схемы:
Клиентское приложение → сервер базы данных
Промежуточного компонента между приложением пользователя и данными здесь нет. Такой вариант встречается в системах с относительно простой структурой взаимодействия.
Трехуровневая архитектура
Между клиентской частью и хранилищем появляется отдельный компонент, который выполняет прикладную обработку.
Система включает:
- Представление: отвечает за интерфейс.
- Прикладную часть: выполняет бизнес-логику.
- Работу с данными: обеспечивает обращение к хранилищу.
Упрощенно:
Клиент → сервер приложений → база данных
Такая схема используется, когда обработку нужно отделить от пользовательского интерфейса и хранения информации.
Многоуровневая архитектура
В более сложных системах отдельные функции распределяют между дополнительными компонентами.
Условная схема:
Клиент → прикладная часть → дополнительные службы → хранилище данных
Самостоятельные компоненты могут выполнять интеграцию с другими системами, фоновую обработку или другие специализированные задачи.
Логическая схема показывает структуру системы. Физическое размещение ее компонентов определяется отдельно.
Как архитектура связана с серверным оборудованием
При поддержке со стороны программного обеспечения одну серверную функцию можно распределить между несколькими узлами. Поэтому программная схема сама по себе не определяет количество оборудования. Приоритет характеристик зависит от конкретного программного обеспечения и профиля нагрузки.
| Серверная роль | Что проверяют в первую очередь |
| Сервер приложений | Производительность процессора и объем оперативной памяти |
| Сервер базы данных | Процессор, память, накопители или СХД |
| Файловый сервер | Емкость, дисковую подсистему и сетевое подключение |
| Сервер удаленных рабочих сеансов | Процессор, память и сеть |

Несколько ролей можно разместить на одной платформе, когда это допускают суммарная нагрузка и требования к доступности.
При росте нагрузки компоненты разделяют между узлами, чтобы снизить конкуренцию за процессор, память и подсистему хранения.
Отдельное размещение может потребоваться и из-за требований к доступности. В таких системах используют резервные серверы, дублированные сетевые соединения и другие механизмы отказоустойчивости, которые поддерживает программное обеспечение.
Подберем конфигурацию с учетом платформы и нагрузки
Преимущества и ограничения
Такое устройство системы упрощает совместную работу пользователей и управление общими компонентами.
| Возможность | Что дает | Что учитывать |
| Централизованная работа с данными | Пользователи получают доступ к общему набору информации | Нужно контролировать права доступа и целостность данных |
| Единое управление | Часть настроек и изменений можно выполнять централизованно | Возможности зависят от устройства конкретного приложения |
| Разделение функций | Разные части системы можно изменять и сопровождать отдельно | Чем больше компонентов, тем сложнее контролировать связи между ними |
| Обслуживание клиентской части | Часть изменений можно проводить на серверной стороне без настройки каждого рабочего места | Объем централизованных изменений зависит от типа клиента |
| Совместная работа пользователей | Несколько сотрудников или программ могут работать с одной системой и общими данными | Серверная часть должна справляться с одновременными обращениями |
Чем больше взаимосвязанных компонентов, тем сложнее локализовать сбой: приходится проверять всю цепочку обработки запроса.
Вопросы и ответы
Да. Для обмена достаточно сетевой связи между клиентской и серверной частями. Корпоративные приложения могут работать полностью внутри локальной сети.
В клиент-серверной схеме отдельные компоненты выполняют серверные функции и обслуживают обращения клиентов. В одноранговой сети устройства могут напрямую предоставлять ресурсы друг другу без выделенной серверной роли.
Да. Размер организации сам по себе не определяет выбор архитектуры. Важнее требования программного обеспечения, число пользователей и способ совместной работы с данными.
Клиент-серверная модель описывает роли участников: кто запрашивает службу и кто ее предоставляет. Распределенная архитектура описывает размещение обработки и данных между несколькими узлами. Одна система может одновременно использовать оба принципа.
Да. Серверные компоненты можно размещать в облачной среде при наличии подходящих вычислительных ресурсов, сети и поддержки со стороны программного обеспечения.
Нет. В программной архитектуре клиентом обычно выступает приложение или программный компонент. Он может работать на компьютере пользователя, сервере или другом устройстве.