Какова базовая архитектура веб-приложения?

«Какова базовая архитектура веб-приложения?» — вопрос из категории Архитектура, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

1. Клиентская часть (Frontend):

  • Задача: Предоставление пользовательского интерфейса и взаимодействие с пользователем.
  • Технологии: HTML (структура), CSS (стили), JavaScript (логика). Часто используются фреймворки (React, Angular, Vue).
  • Действия: Отправляет HTTP-запросы к API бэкенда, получает данные (обычно JSON) и динамически обновляет интерфейс.

2. Серверная часть (Backend):

  • Задача: Обработка бизнес-логики, работа с данными и обеспечение API.
  • Компоненты:
    • Веб-сервер: Принимает входящие HTTP-запросы и маршрутизирует их (Nginx, Apache).
    • Серверное приложение: Выполняет логику (на Python/Django, Node.js/Express, Java/Spring и др.).
    • База данных: Хранит и предоставляет данные (PostgreSQL, MongoDB).
    • Кэш: Ускоряет доступ к часто запрашиваемым данным (Redis).

Пример взаимодействия (Frontend на JavaScript):

// Клиент отправляет GET-запрос к API бэкенда
fetch('https://api.example.com/products')
  .then(response => response.json())
  .then(products => {
    // Обработка данных и обновление UI
    console.log(products);
  });

Ключевой принцип: Разделение ответственности позволяет независимо масштабировать и развивать фронтенд и бэкенд.