TGStat
TGStat
Type to search
Advanced channel search
  • flag English
    Site language
    flag Russian flag English flag Uzbek
  • Sign In
  • Catalog
    Channels and groups catalog Regional compilations Thematic compilations Платные каналы Search for channels
    Add a channel/group
  • Ratings
    Rating of channels Rating of groups Posts rating
    Ratings of brands and people
  • Analytics
  • Search by posts
  • Telegram monitoring
  • Promotion
    Advertising through Yandex Business Advertising in channels through TGStat Agency Advertising on TGStat.ru website
Системный Аналитик

24 Aug 2023, 12:48

Open in Telegram Share Report

🖥 ⇆ 🗄 Как работает клиент-серверная архитектура

Все говорят о REST и микросервисах, но достаточно ли хорошо мы разбираемся в устройстве клиент-серверной архитектуры? Это ключевой аспект, без которого понимание и использование REST невозможно.

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

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

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

База данных — может быть расположена на том же устройстве, что и сервер (двухзвенная архитектура), или на отдельном (трёхзвенная архитектура). База данных отвечает за хранение, поиск и изменение данных по запросам от сервера.

Пример работы клиент-серверной архитектуры

1️⃣ Пользователь вводит данные в форму на клиенте и нажимает кнопку “Отправить”.
2️⃣ Клиент формирует запрос на сервер и отправляет его через сеть.
Сервер получает запрос от клиента и обрабатывает его согласно бизнес-логике.
3️⃣ Сервер формирует запрос на базу данных и отправляет его через сеть или локально.
4️⃣ База данных получает запрос от сервера и выполняет его, возвращая результаты.
5️⃣ Сервер получает результаты от базы данных и формирует ответ на клиент.
6️⃣ Сервер отправляет ответ на клиент через сеть.
7️⃣ Клиент получает ответ от сервера и отображает его пользователю.

Виды клиент-серверной архитектуры

🔹 Двухзвенная
— это архитектура, в которой есть только два слоя: клиентский и серверный. К двухуровневой архитектуре «клиент-сервер» следует относить такую, в которой прикладные программы сосредоточены на сервере приложений, например, на сервере CRM, а в рабочих станциях находятся программы-клиенты, которые предоставляют для пользователей интерфейс для работы с приложениями на общем сервере.

🔹 Трехзвенная — сервер баз данных, файловый сервер и другие представляют собой отдельный уровень, результаты работы которого использует сервер приложений. Логика данных и бизнес-логика находятся в сервере приложений.

🔹 Многозвенная — больше трех слоев, которые могут выполнять разные функции, такие как презентация, бизнес-логика, интеграция, хранение и т.д. Клиент обращается к одному или нескольким серверам за услугами, а серверы обращаются к другим серверам или базам данных за данными или услугами.

Преимущества и недостатки клиент-серверной архитектуры

Клиент-серверная архитектура имеет много преимуществ перед другими архитектурами, например, файл-серверная, в которой все файлы хранятся на одном сервере и доступны для всех клиентов:

✅ Экономия ресурсов и денег, так как масштабировать систему легко, добавляя или удаляя клиентов и серверов по мере необходимости.
✅ Упрощение разработки и поддержки кода, так как не нужно дублировать логику на каждом клиенте, а достаточно реализовать ее на сервере.
✅ Обеспечение безопасности и конфиденциальности данных, так как пользователь не имеет прямого доступа к базе данных и другим частям приложения, а только к своему интерфейсу.

Однако клиент-серверная архитектура также имеет некоторые недостатки, такие как:
🔻 Зависимость от сети и доступности сервера, так как если сеть пропадет или сервер упадет, то пользователь не сможет работать с приложением.
🔻 Сложность обеспечения отказоустойчивости, так как если нагрузка на приложение возрастет или произойдет сбой на одном из серверов, то нужно предусмотреть механизмы балансировки и резервирования.

📎 Материалы по теме
1. Клиент-серверная архитектура в картинках: статья на Хабре и видео
2. Клиент - серверная архитектура (Client-Server Architecture)
3. Клиент-серверная архитектура — JavaRush
4. Как работают веб-приложения
5. Грамотная клиент-серверная архитектура: как правильно проектировать и разрабатывать web API

#архитектура

1.3k 0 41 15
Catalog
Channels and groups catalog Channels compilations Search for channels Add a channel/group
Ratings
Rating of Telegram channels Rating of Telegram groups Posts rating Ratings of brands and people
API
API statistics Search API of posts API Callback
Our channels
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Read
Академия TGStat Telegram Research 2019 Telegram Research 2021 Telegram Research 2023
Contacts
Справочный центр Support Email Jobs
Miscellaneous
Terms and conditions Privacy policy Public offer
Our bots
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot