Beste antwoord
Staatloos betekent dat het geen status heeft.
Laten we bijvoorbeeld een webserver nemen. Het kan stateful of stateless zijn.
Stateful zou betekenen dat de server sessie-informatie opslaat om een gebruiker te identificeren bij meerdere opeenvolgende verzoeken. Als de sessie geldig is, zouden de verzoeken slagen.
Stateless zou het tegenovergestelde zijn. De server zou geen enkele toestand opslaan, dat wil zeggen sessie-informatie om de gebruiker te identificeren bij meerdere opeenvolgende verzoeken. Elk verzoek moet een manier bevatten om de gebruiker te identificeren. Een manier om dat te bereiken is door een token te gebruiken (bijvoorbeeld JSON-webtoken of oAuth). Dit token zou bij elk verzoek worden verzonden (meestal in de verzoekheaders).
Hierdoor zijn servers niet meer nodig om sessiegegevens te bewaren, wat de schaalbaarheid beïnvloedt, aangezien het verplaatsen naar meerdere servers anders het delen van sessiegegevens vereist.
Antwoord
Ooit gehoord van iets dat sessies wordt genoemd in context naar het web?
Ik ga het uitleggen door het concept niet te generaliseren, maar vast te houden aan een meer algemene ontmoeting die we bijna allemaal hebben gehad op internet of WWW.
Stateful servers houden de statusinformatie van gebruikers bij in de vorm van sessies. Dit is iets anders dan ‘inloggen op uw account’ op een website. Tegenwoordig behouden de meeste HTTP-websites die toegankelijk zijn via het WWW de sessie-informatie van de gebruiker. Dus tijdens een sessie-run behoren al uw verzoeken tot die specifieke sessie die werd geopend toen u voor het eerst een pagina op die website bezocht. Over het algemeen wordt een sessie pas beëindigd als u uw browser sluit. Het bijhouden van sessie-informatie helpt de webserver om een persoonlijke service te bieden. Bovendien helpen sessies ook om gelijktijdig webverkeer op elk moment te volgen, bieden ze beveiligingsfuncties zoals het verbieden van een kwaadwillende gebruiker die de server probeert uit te schakelen door talloze verzoeken naar de server te sturen (waarschijnlijk met dezelfde gevestigde sessie). Ten slotte worden sessies gebruikt om in te loggen op de website. Zodra u zich aanmeldt bij de website, wordt uw unieke ID door de webservice opgeslagen in de sessie die u had geopend en voor al uw verzoeken daarna weet de webserver dat u het bent die de service opent.
Staatloos servers daarentegen houden geen statusinformatie bij voor de gebruiker. Elk verzoek is volledig onafhankelijk van het vorige verzoek. De meest voorkomende staatloze architectuur die gebruikmaakt van HTTP is REST (REpresentational State Transfer), die wordt gebruikt om web-APIs te ontwerpen. Staatloze servers kunnen de gebruiker mogelijk nog steeds identificeren als het verzoek aan de service een unieke gebruikers-ID bevat die eerder aan de gebruiker is toegewezen. Maar dat gebruikers-ID moet in elk verzoek worden doorgegeven, in tegenstelling tot het geval van Stateful-servers die dit gebruikers-ID tijdens de sessie behouden en de verzoekgegevens hoeven niet noodzakelijk dit ID te bevatten.
Door dit antwoord kan ik Ik heb geprobeerd de belangrijkste verschillen tussen de stateful en stateless servers te onderstrepen. De verschillen kunnen worden uitgebreid tot meer algemene scenarios.