Типы веб-приложений и роль бэкенда
Один и тот же бизнес можно вывести в интернет разными способами. От выбора зависят: формат API, кэширование, SEO, сложность деплоя и то, что именно пишет бэкенд-разработчик.
Ось — где собирается HTML
Словарь
| Тип | Суть | Типичный API бэкенда |
|---|---|---|
| MPA (Multi-Page Application) | Каждый URL — новая HTML-страница с сервера | Формы POST, сессии, частично REST |
| SPA (Single Page Application) | Одна оболочка HTML, навигация в JS | REST/GraphQL, JWT, WebSocket |
| CSR (Client-Side Rendering) | Данные по API, разметка в браузере | Толстый JSON, пагинация, BFF иногда |
| SSR (Server-Side Rendering) | HTML собирается на сервере на каждый запрос | Те же API + слой рендера (Node, .NET Razor, PHP) |
| SSG (Static Site Generation) | HTML генерируется заранее (build) | API на этапе сборки + клиентский hydrate |
| PWA | Сайт + manifest + service worker | Как SPA + push, офлайн-кэш статики |
SPA — форма доставки; CSR/SSR/SSG — когда строится DOM. Комбинации нормальны: Next.js = SSR + CSR + SSG в одном проекте.
MPA vs SPA — путь запроса
Ответ API для SPA (бэкенд отдаёт данные, не разметку):
{
"id": 42,
"title": "Кружка",
"price": 590,
"in_stock": true
}
SSG / ISR: при сборке CI может вызвать GET /api/articles и сгенерировать HTML в файлы; при ISR страница обновляется по расписанию или по событию — бэкенд дергается на build или по webhook, а не на каждый визит пользователя.
Ответственность бэкенда по типам
MPA (классика)
- Сессии на сервере (cookie + server-side store).
- CSRF-токены в формах.
- Меньше версионирования публичного API — логика в контроллерах и шаблонах.
- SEO «бесплатно» — HTML уже готов.
SPA / CSR
- Контрактный API (OpenAPI), версии
/v1. - CORS, JWT или cookie + SameSite.
- Пагинация, фильтры, загрузка файлов через API.
- SEO сложнее — нужен prerender, SSR или отдельный лендинг.
SSR / гибрид
- Бэкенд (или BFF) отдаёт HTML и кормит клиентский bundle данными.
- Важны: время TTFB, кэш фрагментов, не дублировать бизнес-логику в двух слоях без дисциплины.
SSG
- На build CI дергает API и пишет статику.
- Бэкенд для динамики (формы, личный кабинет) остаётся API-first.
- Обновление контента: rebuild или ISR (инкрементальная регенерация страниц).
BFF (Backend for Frontend)
Когда мобильному и веб-клиенту нужны разные агрегаты данных, вводят тонкий слой BFF:
- веб-BFF собирает экран заказа одним запросом;
- core-сервисы остаются узкими и стабильными.
Минус: ещё один компонент в деплое. Плюс: меньше «чата» на клиенте и проще эволюция UI.
Как выбрать (прагматично)
| Критерий | Склонность |
|---|---|
| SEO критичен, мало интерактива | MPA, SSR, SSG |
| Богатый UI, редкие индексируемые страницы | SPA + CSR |
| Одинаковый UI web + mobile | API-first + отдельные клиенты |
| Максимальная простота хостинга статики | SSG + serverless API |
Ошибки проектирования
- Два источника правды — бизнес-правила и в Node-рендере, и в Java-сервисе без синхронизации.
- «Толстый» API для SPA — отдача всей модели БД; нужны DTO и проекции.
- Сессия в cookie для SPA на другом домене — без продуманного CORS/SameSite ломается авторизация.
Связанные темы
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Клиентская часть приложения: HTML, CSS, JavaScript, фреймворки, работа с API. Node.js используется как среда сборки (Vite, Webpack), но не является частью клиентской логики в браузере. ★ Серверная часть (Backend) — невидимый для пользователя слой приложения, отвечающий за бизнес-логику, хранение и обработку данных, а также взаимодействие с внешними системами. Метрики веб-приложений: QPS, TPS, latency, перцентили, трассировка и примеры инструментирования для объективной оценки производительности. Матрица навыков серверной разработки веб-приложений по уровням junior → middle → middle+ с привязкой к материалам энциклопедии. Большинство бэкендов в продакшене работают на Linux (или совместимых системах). Пользователь жалуется: «сайт тормозит». Часть причин — не в SQL и не в алгоритме, а в пути пакета от клиента до сервера и обратно. Регистрация, сброс пароля, счета, уведомления — email остаётся надёжным каналом, когда push и мессенджеры недоступны. Три слоя наблюдаемости: метрики показывают симптом, логи — причину, аудит — кто что сделал. Что писать в продакшене и чего избегать. Краткие итоги раздела «Фронтенд и бэкенд». Чек-лист раздела Фронтенд и бэкенд — вопросы для самопроверки в энциклопедии Вселенная IT.Фронтенд
Бэкенд
Метрики производительности веб-приложений
Компетенции бэкенд-разработчика
Linux для бэкенд-разработчика
Сеть для диагностики бэкенда
Исходящая почта на бэкенде
Наблюдаемость бэкенда — метрики, логи и аудит
Итоги
Чек-лист самопроверки