Встречается на собеседованиях • сегодня

Что такое отсутствие состояния в REST

REST (Representational State Transfer) требует, чтобы сервер не хранил состояние клиента между запросами. Каждый запрос должен содержать всю необходимую информацию для его обработки. Это повышает масштабируемость и надежность системы.

Пример без состояния:

python
# Клиент отправляет токен в каждом запросе
@app.route('/data')
def get_data():
    token = request.headers.get('Authorization')
    if not validate_token(token):
        return 'Unauthorized', 401
    return {'data': 'some_value'}

Пример с состоянием (нарушение REST):

python
# Сервер хранит состояние клиента
sessions = {}

@app.route('/login')
def login():
    sessions['user'] = 'authenticated'
    return 'Logged in'

@app.route('/data')
def get_data():
    if sessions.get('user') != 'authenticated':
        return 'Unauthorized', 401
    return {'data': 'some_value'}

Отсутствие состояния позволяет:

  • Легко масштабировать сервер (любой инстанс может обработать запрос)
  • Упрощает восстановление после сбоев
  • Уменьшает нагрузку на сервер (не нужно хранить сессии)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы