Haftungsausschluss: Ich bin neu in der REST-Denkschule und versuche, mich darum zu kümmern.
Ich lese diese Seite, Häufige REST-Fehler , und habe festgestellt, dass mich der Abschnitt über irrelevante Sitzungen völlig verblüfft. Dies ist, was die Seite sagt:
Es sollte nicht erforderlich sein, dass sich ein Client "anmeldet" oder "eine Verbindung herstellt". Die HTTP-Authentifizierung erfolgt automatisch für jede Nachricht. Clientanwendungen sind Konsumenten von Ressourcen, nicht von Diensten. Daher gibt es nichts, bei dem man sich anmelden kann! Angenommen, Sie buchen einen Flug über einen REST-Webservice. Sie erstellen keine neue "Sitzungs" -Verbindung zum Dienst. Stattdessen bitten Sie das "Objekt zum Erstellen der Reiseroute", eine neue Reiseroute zu erstellen. Sie können mit dem Ausfüllen der Lücken beginnen, aber dann an einer anderen Stelle im Web eine völlig andere Komponente erhalten, um einige andere Lücken auszufüllen. Es gibt keine Sitzung, daher gibt es kein Problem beim Migrieren des Sitzungsstatus zwischen Clients. Es gibt auch kein Problem der "Sitzungsaffinität"
Okay, ich verstehe, dass die HTTP-Authentifizierung bei jeder Nachricht automatisch erfolgt - aber wie? Wird der Benutzername / das Passwort bei jeder Anfrage gesendet? Erhöht das nicht nur die Angriffsfläche? Ich habe das Gefühl, dass mir ein Teil des Puzzles fehlt.
Wäre es beispielsweise schlecht, einen REST-Service zu haben /session
, der eine GET-Anforderung akzeptiert, bei der Sie als Teil der Anforderung einen Benutzernamen / ein Kennwort übergeben und bei erfolgreicher Authentifizierung ein Sitzungstoken zurückgeben, könnte dies der Fall sein zusammen mit nachfolgenden Anfragen weitergegeben? Ist das aus REST-Sicht sinnvoll oder fehlt das?