Haftungsausschluss: Ich bin neu in der REST-Schule des Denkens, und ich versuche, meine Meinung darüber einzuwickeln.Können Sie mir helfen, dies zu verstehen? "Häufige REST-Fehler: Sitzungen sind irrelevant"
Also, ich lese diese Seite, Common REST Mistakes, und ich habe festgestellt, ich bin völlig verwirrt durch den Abschnitt über Sitzungen, die irrelevant sind. Dies ist, was die Seite sagt: „eine Verbindung starten“
Es sollte für einen Kunden keine Notwendigkeit, „Login“ oder HTTP-Authentifizierung erfolgt automatisch bei jeder Nachricht . Client Anwendungen sind Verbraucher von Ressourcen, keine Dienste. gibt es also nichts, wo man sich einloggen kann! Lassen Sie uns sagen, dass Sie einen Flug auf einem REST-Webservice buchen. Sie erstellen keine neue "Sitzung" Verbindung zum Dienst. Eher bitten Sie das "Route Creator-Objekt", um Ihnen eine neue Route zu erstellen. Sie können beginnen, die Lücken zu füllen, aber dann erhalten Sie ganz andere andere Komponente an anderer Stelle auf der Web, um einige andere Leerzeichen zu füllen. Es gibt keine Sitzung, so gibt es kein Problem der Migration des Sitzungsstatus zwischen Clients. Es gibt auch kein Problem der "Sitzungsaffinität" im Server (obwohl es immer noch Ausgleichsprobleme gibt, um fortzufahren).
Okay, ich bekomme, dass HTTP-Authentifizierung automatisch auf jede Nachricht 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 schlecht, einen REST-Dienst zu haben, sagen wir /session
, der eine GET-Anfrage akzeptiert, wo Sie einen Benutzernamen/Passwort als Teil der Anfrage übergeben und ein Sitzungstoken zurückgeben, wenn die Authentifizierung erfolgreich war , das könnte dann mit nachfolgenden Anfragen weitergegeben werden? Ist das aus REST-Sicht sinnvoll, oder fehlt der Punkt?
Diese Antwort ergibt für mich keinen Sinn. Zum einen heißt es, dass es in Ordnung ist, Login und Passwort jedes Mal und damit auch einmal zu übergeben, was sinnvoll ist. Dann wird die Idee vorgeschlagen, den erfolgreichen Anmeldestatus in Form eines Tokens an den Client zurückzugeben. Bei Bedarf könnte das Token den Zeitpunkt der Erstellung codieren. Es ist uns selbstverständlich gestattet, Informationen an den Kunden zurückzugeben. Also, dieser Vorschlag scheint mir gut zu sein. Die Antwort sagt, dass es nicht gut ist, weil "es trägt Zustand", aber ist nicht die Idee von "ST" in "REST" dieser Zustand kann zwischen dem Client und dem Server übertragen werden? –