Beste Antwort
Statuslos bedeutet, dass er keinen Status hat.
Nehmen wir zum Beispiel einen Webserver. Es kann statusbehaftet oder zustandslos sein.
Stateful würde bedeuten, dass der Server einige Sitzungsinformationen speichert, um einen Benutzer über mehrere nachfolgende Anforderungen hinweg zu identifizieren. Wenn die Sitzung gültig ist, sind die Anforderungen erfolgreich.
Statuslos wäre das Gegenteil. Der Server würde keinen Status speichern, dh Sitzungsinformationen, um den Benutzer über mehrere nachfolgende Anforderungen hinweg zu identifizieren. Jede Anfrage sollte eine Möglichkeit zur Identifizierung des Benutzers enthalten. Eine Möglichkeit, dies zu erreichen, ist die Verwendung eines Tokens (z. B. JSON-Web-Token oder oAuth). Dieses Token wird bei jeder Anforderung gesendet (normalerweise in den Anforderungsheadern).
Dadurch entfällt die Notwendigkeit, dass Server Sitzungsdaten speichern müssen. Dies wirkt sich auf die Skalierbarkeit aus, da bei der Verlagerung auf mehrere Server ansonsten Sitzungsdaten gemeinsam genutzt werden müssen / p>
Antwort
Haben Sie schon einmal von etwas gehört, das im Zusammenhang mit dem Web als „Sitzungen“ bezeichnet wird?
Ich werde es erklären, indem ich das Konzept nicht verallgemeinere, sondern dabei bleibe Eine häufigere Begegnung, die fast alle von uns im Internet oder im WWW hatten.
Stateful-Server verwalten die Statusinformationen des Benutzers in Form von Sitzungen. Dies unterscheidet sich von der Anmeldung in Ihrem Konto auf einer Website. Heutzutage verwalten die meisten HTTP-Websites, auf die über das WWW zugegriffen werden kann, die Sitzungsinformationen des Benutzers. Während eines Sitzungslaufs gehören alle Ihre Anforderungen zu dieser bestimmten Sitzung, die beim ersten Besuch einer Seite auf dieser Website geöffnet wurde. Im Allgemeinen wird eine Sitzung nur beendet, wenn Sie Ihren Browser schließen. Durch das Verwalten von Sitzungsinformationen kann der Webserver einen personalisierten Service anbieten. Darüber hinaus helfen Sitzungen auch dabei, den gleichzeitigen Webverkehr zu jedem Zeitpunkt zu überwachen. Sie bieten Sicherheitsfunktionen wie das Verbot eines böswilligen Benutzers, der versucht, den Server herunterzufahren, indem er zahlreiche Anforderungen an den Server sendet (wahrscheinlich unter Verwendung derselben eingerichteten Sitzung). Schließlich werden Sitzungen verwendet, um sich auf der Website anzumelden. Sobald Sie sich auf der Website angemeldet haben, wird Ihre eindeutige Kennung vom Webdienst in der Sitzung gespeichert, die Sie geöffnet haben, und für alle Ihre anschließenden Anforderungen weiß der Webserver, dass Sie auf den Dienst zugreifen.
Statuslos Server hingegen verwalten keine Statusinformationen für den Benutzer. Jede Anfrage ist völlig unabhängig von der vorherigen Anfrage. Die häufigste zustandslose Architektur, die HTTP verwendet, ist REST (REpresentational State Transfer), die zum Entwerfen von Web-APIs verwendet wird. Statuslose Server können den Benutzer möglicherweise weiterhin identifizieren, wenn die Anforderung an den Dienst eine eindeutige Benutzer-ID enthält, die dem Benutzer zuvor zugewiesen wurde. Diese Benutzer-ID muss jedoch bei jeder Anforderung übergeben werden, anders als bei Stateful-Servern, die diese Benutzer-ID in der Sitzung verwalten, und die Anforderungsdaten müssen nicht unbedingt diese ID enthalten.
Durch diese Antwort I Wir haben versucht, die Hauptunterschiede zwischen zustandsbehafteten und zustandslosen Servern hervorzuheben. Die Unterschiede können auf allgemeinere Szenarien ausgedehnt werden.