Stateless-Webanwendung, eine urbane Legende?

Ich versuche zu verstehentoken-based authentication in diesen Tagen, die behauptet, ein @ zu sestateless authentication Methode. Und ich traf das Konzept vonstateless web application.

Below sind einige Themen, über die ich gelesen habe:

Verwenden Sie Spring MVC für die Entwicklung zustandsloser Webanwendungen. (noch keine AntwortStateless Spring MVCWie man eine Java-Webanwendung vollständig zustandslos machtWie kann ich meine Webanwendung zustandslos machen und trotzdem etwas Nützliches tun?

Zunächst war ich von dieser Idee begeistert. Aber immer mehr denke ichstateless ist einpseudo-proposition.

Angenommen, wir verwenden ein im Client gespeichertes Token zur Authentifizierung. Wie können wir eine Statistik der Online-Benutzer erstellen (vorausgesetzt, es gibt kein Protokoll)? Sollen wir den Token in der DB speichern? Bedeutet das nicht, dass wir Statusinformationen auf dem Server speichern? Und noch mehr, sind die einfachen Benutzerinformationen wie Name, Alter usw. in der DB auch eine Art Statusinformationen?

Ich denke, die eigentliche Frage hier ist nicht, eine Web-App zustandslos zu machen, sondern, damit die Web-App die Statusinformationen ordnungsgemäß verarbeitet, sodass die Skalierbarkeit nicht gefährdet wird.

Das hängt davon ab, wie das Wort @ zu interpretieren isstateless:

Web App hat keinen Status.Oder Web-App speichert keinen Statusselbs.

Ich bevorzuge 2, weil es immer ein @ geben kainevitable global state (zitiert aus @ decezes Kommentar zu seiner Antwort). Unabhängig davon, ob wir Statusinformationen als HTML 5-Webspeicher, HTTP-Header, ausgeblendete Formularfelder oder Cookies speichern, ist der Status weiterhin vorhanden. Nur, dass es nicht auf dem Server gespeichert ist.

Vermisse ich etwas tolles? Könnte jemand etwas Licht ins Dunkel bringen, damit ich von diesem mentalen Kampf befreit werd

ADD 1

Nur über das Buch lesenRESTful Web Services durchLeonard Richardson. In Kapitel 4 am Ende des AbschnittsStatelessness, klassifiziert den Zustand inApplication State undResource State. So können die oben erwähnten einfachen Benutzerinformationen und -daten wie Bilder usw. als @ klassifiziert werdeResource State. Und wasstateless bezieht sich auf istApplication State. So wird der Code von statuslos nicht verletzt, um @ zu speicherresource state auf dem Server.

Aber das Buch erwähnt auch das Szenario, in deman application key is used to restrict how many times a user can invoke a web service. Es gibt zu, dass solche Informationen nicht clientseitig gespeichert werden können. Wenn Sie es auf dem Server speichern müssen, wird der Code für Statuslose verletzt und das Problem der Sitzungsaffinität eingeführt.s wird behauptet, dass Staatenlose Probleme mit der Sitzungsaffinität vermeiden können, erklärt aber nicht, wi Ich verstehe wirklich nicht, wie Staatenlose mit diesem Szenario umgehen können. Kann hier jemand etwas Licht ins Dunkel bringen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage