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