Avis de non-responsabilité: je suis nouveau dans l'école de pensée REST et j'essaie de comprendre.
Donc, je lis cette page, Erreurs courantes de REST , et j'ai trouvé que je suis complètement déconcerté par la section sur les sessions qui n'est pas pertinente. Voici ce que dit la page:
Il ne devrait pas être nécessaire pour un client de «se connecter» ou de «démarrer une connexion». L'authentification HTTP est effectuée automatiquement sur chaque message. Les applications clientes consomment des ressources et non des services. Il n'y a donc rien à quoi se connecter! Disons que vous réservez un vol sur un service Web REST. Vous ne créez pas de nouvelle connexion «session» avec le service. Vous demandez plutôt à "l'objet créateur d'itinéraire" de vous créer un nouvel itinéraire. Vous pouvez commencer à remplir les vides, mais ensuite obtenir un composant totalement différent ailleurs sur le Web pour remplir d'autres vides. Il n'y a pas de session donc il n'y a pas de problème de migration de l'état de session entre les clients. Il n'y a pas non plus de problème d '"affinité de session"
D'accord, j'obtiens que l'authentification HTTP se fait automatiquement sur chaque message - mais comment? Le nom d'utilisateur / mot de passe est-il envoyé avec chaque demande? Cela n'augmente-t-il pas simplement la surface d'attaque? J'ai l'impression de manquer une partie du puzzle.
Serait-il mauvais d'avoir un service REST, par exemple, /session
qui accepte une demande GET, où vous passeriez un nom d'utilisateur / mot de passe dans le cadre de la demande, et renvoie un jeton de session si l'authentification a réussi, cela pourrait être alors transmis avec les demandes ultérieures? Est-ce que cela a du sens du point de vue REST, ou est-ce que cela manque le point?