Отказ от ответственности: я новичок в школе мысли REST, и я пытаюсь обдумать это.
Итак, я читаю эту страницу, типичные ошибки REST , и обнаружил, что совершенно сбит с толку тем, что раздел о сессиях не имеет значения. Вот что говорит страница:
Клиенту не нужно «входить в систему» или «устанавливать соединение». HTTP-аутентификация выполняется автоматически для каждого сообщения. Клиентские приложения являются потребителями ресурсов, а не услуг. Поэтому не к чему войти! Допустим, вы бронируете рейс через веб-сервис REST. Вы не создаете новое «сеансовое» соединение с сервисом. Скорее вы просите «объект создателя маршрута» создать для вас новый маршрут. Вы можете начать заполнять пробелы, но затем получить какой-то совершенно другой компонент в другом месте в Интернете, чтобы заполнить некоторые другие пробелы. Нет сеанса, поэтому нет проблемы переноса состояния сеанса между клиентами. Также нет проблемы "сессионной близости"
Хорошо, я получаю, что HTTP-аутентификация выполняется автоматически для каждого сообщения - но как? Имя пользователя / пароль отправляется с каждым запросом? Разве это не увеличивает площадь поверхности атаки? Я чувствую, что мне не хватает части головоломки.
Было бы плохо иметь службу REST, скажем, /session
которая принимает запрос GET, где вы передаете имя пользователя / пароль как часть запроса, и возвращает маркер сеанса, если аутентификация прошла успешно, это может быть прошло вместе с последующими запросами? Имеет ли это смысл с точки зрения REST, или это упущение?