Відмова: Я новачок у школі REST думки, і я намагаюся обернути свою думку.
Отож, я читаю цю сторінку, загальні помилки REST , і я виявив, що повністю збентежений розділом про сеанси, який не має значення. Про це говорить сторінка:
У клієнта не повинно бути "входу" або "початку зв'язку". Ідентифікація HTTP проводиться автоматично на кожному повідомленні. Клієнтські програми - це споживачі ресурсів, а не послуг. Тому увійти в систему нема чого! Скажімо, ви бронюєте рейс на веб-сервісі REST. Ви не створюєте нове "сеансове" з'єднання зі службою. Швидше ви попросите "об'єкта маршруту творця" створити вам новий маршрут. Ви можете почати заповнювати заготовки, але потім отримати якийсь абсолютно інший компонент в іншому місці в Інтернеті, щоб заповнити деякі інші заготовки. Немає сеансу, тому немає проблеми з переходом стану сеансу між клієнтами. Також немає питання про "спорідненість сеансу"
Гаразд, я розумію, що аутентифікація HTTP робиться автоматично на кожному повідомленні - але як? Чи ім'я користувача / пароль надсилаються з кожним запитом? Це не просто збільшує площу поверхні атаки? Я відчуваю, що мені не вистачає частини головоломки.
Було б погано мати службу REST, скажімо, /session
що приймає GET-запит, де ви передасте ім'я користувача / пароль як частину запиту та повертаєте маркер сеансу, якщо аутентифікація пройшла успішно, це може бути тоді передано разом з подальшими запитами? Це має сенс з точки зору REST, або це не вистачає точки?