Что такое SSR (Server-Side Rendering)?

«Что такое SSR (Server-Side Rendering)?» — вопрос из категории Архитектура, который задают на 24% собеседований PHP Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

**SSR (Server-Side Rendering)** — это архитектурный подход, при котором конечный HTML-код страницы генерируется на сервере и отправляется браузеру уже в готовом для отображения виде. Это противоположность **CSR (Client-Side Rendering)**, где сервер отправляет почти пустой HTML-документ и JavaScript-фреймворк (React, Vue.js) строит интерфейс в браузере. **Как это работает в контексте PHP-приложения:** 1. Пользователь запрашивает страницу. 2. PHP-скрипт на сервере выполняет логику (запросы к БД, вычисления). 3. Данные передаются в шаблонизатор (например, Blade в Laravel или Twig). 4. Шаблонизатор рендерит полную HTML-страницу. 5. Готовый HTML отправляется клиенту. **Пример на чистом PHP:** ```php // index.php $pageTitle = "Главная страница"; $articles = getArticlesFromDatabase(); // Функция, возвращающая массив статей // Рендеринг (упрощённо) ob_start(); include 'template.php'; $html = ob_get_clean(); echo $html; ``` ```html <?= htmlspecialchars($pageTitle) ?>

``` **Преимущества SSR:** * **Быстрая первоначальная отрисовка (First Paint):** Браузеру не нужно ждать загрузки и выполнения большого объёма JS, чтобы показать контент. * **Лучшая SEO-оптимизация:** Поисковые роботы легко индексируют готовый HTML-контент. * **Работа без JavaScript:** Основной функционал доступен даже при отключённом JS. **Недостатки SSR:** * **Высокая нагрузка на сервер:** Каждый запрос требует генерации полной страницы. * **Меньшая интерактивность:** Для сложных динамических интерфейсов после загрузки страницы всё равно требуется "гидрация" (подключение JavaScript-логики).