За счет чего масштабируется REST?
DOM и браузер
REST масштабируется за счёт statelessness (сервер не хранит состояние клиента), кешируемости и единообразного интерфейса — это позволяет легко добавлять серверы и использовать промежуточные слои.
За счёт чего масштабируется
Stateless (без состояния)
Каждый запрос самодостаточен — сервер не хранит сессию клиента между запросами (состояние передаётся в токене/запросе):
Любой запрос можно направить на любой сервер — они не хранят контекст клиентаЭто ключ к горизонтальному масштабированию: добавляешь серверы за балансировщиком, запрос идёт на любой из них.
Кешируемость
GET-ответы кешируются по URL (браузер, CDN, прокси) — часть запросов не доходит до сервера, снижая нагрузку:
Cache-Control: max-age=3600Единообразный интерфейс
Стандартные методы и URL позволяют вставлять промежуточные слои (кеши, балансировщики, шлюзы) без изменения клиента/сервера.
Слоистость (layered system)
Между клиентом и сервером — прокси, CDN, балансировщики; клиент о них не знает.
Как это даёт масштабирование
- Горизонтальное — много одинаковых stateless-серверов за балансировщиком.
- Кеширование — снижение нагрузки на сервер и БД.
- CDN — раздача близко к пользователю.
Коротко для собеседования
REST масштабируется благодаря statelessness (сервер не хранит сессию — любой запрос на любой сервер, легко добавлять инстансы за балансировщиком), кешируемости (GET кешируется по URL — CDN, прокси снижают нагрузку) и единообразному слоистому интерфейсу (можно вставлять кеши/балансировщики). Основа — stateless + горизонтальное масштабирование.