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

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

Ответ

Server-Side Rendering (SSR) — это техника, при которой HTML-страница генерируется на сервере в ответ на запрос пользователя и отправляется в браузер уже в готовом для отображения виде.

Контраст с Client-Side Rendering (CSR):

  • SSR: Сервер генерирует готовый HTML. Браузер получает его и сразу показывает. JavaScript затем "гидратирует" страницу, делая её интерактивной.
  • CSR: Сервер отправляет почти пустой HTML-каркас и большой JavaScript-бандл. Браузер загружает JS, выполняет его, и только затем рендерит контент.

Преимущества SSR:

  • Лучшая скорость First Contentful Paint (FCP): Пользователь видит контент быстрее.
  • Улучшенный SEO: Поисковые боты легко индексируют готовый HTML.
  • Работа в отключённом JavaScript: Базовая функциональность доступна даже без JS.

Недостатки SSR:

  • Нагрузка на сервер: Каждый запрос требует вычислительных ресурсов сервера.
  • Более медленный Time to Interactive (TTI): Страница может казаться готовой, но стать интерактивной только после гидратации.

SSR в контексте iOS: SSR напрямую не применяется к нативным экранам SwiftUI/UIKit. Однако он актуален в двух сценариях:

  1. Гибридные приложения (WebView): Если часть приложения реализована через WKWebView, то загружаемый в неё контент может использовать SSR для быстрой первоначальной отрисовки.
  2. Универсальные приложения (Universal Apps): Фреймворки вроде React Native или Flutter могут использовать SSR-подходы для предварительного рендеринга на сервере, особенно для веб-версий.

Нативная альтернатива для iOS: Для достижения быстрой загрузки в нативных приложениях используются другие техники: предзагрузка данных, скелетоны (skeleton screens) и нативная отрисовка интерфейса.