Ответ
Клиент-серверная архитектура классифицируется по количеству уровней (tiers), которые логически разделяют ответственность. Основные модели:
- Одноуровневая (1-tier): Клиент и сервер объединены в одном приложении (например, десктопная программа с встроенной базой данных).
- Двухуровневая (2-tier): Классическая архитектура "клиент-сервер". Клиент (например, браузер или мобильное приложение) взаимодействует напрямую с сервером (например, веб-сервером или API).
- Трехуровневая (3-tier): Наиболее распространенная современная архитектура, разделяющая:
- Презентационный уровень (Frontend): Пользовательский интерфейс.
- Уровень бизнес-логики (Backend/Application Server): Обрабатывает запросы, выполняет правила.
- Уровень данных (Database Server): Хранит и управляет данными.
Пример кода для 3-tier архитектуры (Python/Flask):
# Уровень 2: Сервер приложений (Backend)
from flask import Flask, jsonify
import mysql.connector
app = Flask(__name__)
@app.route('/users')
def get_users():
# Уровень 3: Сервер базы данных
db = mysql.connector.connect(
host="localhost",
user="user",
password="pass",
database="app_db"
)
cursor = db.cursor()
cursor.execute("SELECT id, name FROM users")
result = cursor.fetchall()
cursor.close()
db.close()
# Данные отправляются на Уровень 1: Клиент (Frontend)
return jsonify(result)
Почему это важно: Разделение на уровни повышает масштабируемость, безопасность и упрощает поддержку. Например, можно масштабировать сервер БД независимо от сервера приложений.