Ответ
Stateless (без состояния) — это ключевое ограничение архитектуры REST, означающее, что сервер не хранит состояние клиента (сессии, контекст) между запросами. Каждый HTTP-запрос должен содержать всю информацию, необходимую для его обработки (аутентификация, параметры, данные).
Почему это важно:
- Масштабируемость: Серверы можно добавлять/удалять без необходимости синхронизации состояния между ними.
- Надежность: Отказ одного сервера не ломает пользовательскую сессию.
- Упрощение: Серверный код становится проще, так как не требуется управление сессиями.
Пример на Java (JAX-RS):
@GET
@Path("/users/{id}")
public Response getUser(@PathParam("id") Long userId,
@HeaderParam("Authorization") String authToken) {
// Каждый запрос обязан предоставить токен.
// Сервер проверяет его валидность, но не хранит факт "входа" пользователя.
User user = userService.findUser(userId, authToken);
return Response.ok(user).build();
}
Недостаток: Клиент вынужден передавать больше данных в каждом запросе (например, токен в заголовках).