Что же такое клиент-серверная архитектура?
Это архитектура, в которой сетевая нагрузка распределяется между поставщиками услуг, которые называются серверами, и заказчиками услуг, которые называются клиентами.
Сервер — компьютер, на котором хранится приложение;
Клиент — программа, с которой работает пользователь, самым распространенным является - браузер.
Приветствуется более упрощенное определение - это взаимодействие между клиентом и сервером, путем отправления запроса и получения ответа. Фактически, клиент и сервер - это некое программное обеспечение. Как правило, эти программы расположены на разных вычислительных машинах и взаимодействуют между собой через сетевые протоколы, но также клиент и сервер могут располагаться на одной машине. Самый распространенный протокол это HTTP (об остальных мы обязательно поговорим в следующих статьях). Клиент-серверная архитектура построена, в основном, на взаимодействии через данный вид протокола.
Нельзя не отметить, что в зависимости от объема передаваемой информации и необходимости её сохранения, в данную схему добавляется База данных (хранилище данных, позволяет быстро делать выборки информации и сохранять информацию даже при рестарте сервера). Существует Двухуровневая схема – клиент-сервер; Трёхуровневая схема – клиент-сервер-база данных.
Для обеспечение стабильной работы более загруженного и/или бизнес-критичного ПО в схему добавляют дополнительные сервера, базы данных и балансировщик, который распределяет нагрузку на сервера и/или базы данных.