Quest-ce quun serveur sans état?


Meilleure réponse

Stateless signifie quil na pas détat.

Prenons un serveur Web par exemple. Il peut être avec état ou sans état.

Avec état signifierait que le serveur stocke certaines informations de session pour identifier un utilisateur sur plusieurs requêtes ultérieures. Si la session est valide, les requêtes réussiront.

Stateless serait le contraire. Le serveur ne stockera aucun état, cest-à-dire des informations de session pour identifier lutilisateur sur plusieurs demandes ultérieures. Chaque demande doit inclure un moyen didentifier lutilisateur. Une façon dy parvenir consiste à utiliser un jeton (par exemple, un jeton Web JSON ou oAuth). Ce jeton serait envoyé avec chaque requête (généralement dans les en-têtes de requête).

Cela supprime le besoin pour les serveurs de conserver les données de session, ce qui affecte lévolutivité car le passage à plusieurs serveurs nécessite sinon le partage des données de session.

Réponse

Avez-vous déjà entendu parler de quelque chose appelé «sessions» dans le contexte du Web?

Je vais expliquer en ne généralisant pas le concept, mais en men tenant à une rencontre plus courante que presque tous ont eue sur Internet ou sur le Web.

Les serveurs avec état conservent les informations sur létat de lutilisateur sous forme de sessions. Cela diffère de la « connexion à votre compte » sur un site Web. De nos jours, la majorité des sites Web HTTP accessibles via le WWW conservent les informations de session des utilisateurs. Ainsi, lors dune exécution de session, toutes vos demandes appartiennent à cette session particulière qui a été ouverte lorsque vous avez visité une page sur ce site Web pour la première fois. En général, une session nest terminée que lorsque vous fermez votre navigateur. La gestion des informations de session permet au serveur Web doffrir un service personnalisé. De plus, les sessions aident également à surveiller le trafic Web simultané à tout moment, offrent des fonctionnalités de sécurité telles que linterdiction dun utilisateur malveillant qui tente de mettre hors service le serveur en envoyant de nombreuses requêtes au serveur (probablement en utilisant la même session établie). Enfin, les sessions sont utilisées pour «se connecter» au site Web. Une fois que vous vous connectez au site Web, votre identifiant unique est enregistré par le service Web dans la session que vous avez ouverte et pour toutes vos demandes par la suite, le serveur Web sait que cest vous qui accédez au service.

Apatride les serveurs, dautre part, ne conservent aucune information détat pour lutilisateur. Chaque demande est totalement indépendante de la demande précédente. Larchitecture sans état la plus courante qui utilise HTTP est REST (REpresentational State Transfer) qui est utilisée pour concevoir des API Web. Les serveurs sans état peuvent toujours être en mesure didentifier lutilisateur si la demande adressée au service comprend un ID utilisateur unique qui a été précédemment attribué à lutilisateur. Mais cet ID utilisateur devra être transmis dans chaque demande, contrairement au cas des serveurs avec état qui conservent cet ID utilisateur dans la session et les données de la demande ne doivent pas nécessairement contenir cet ID.

Grâce à cette réponse, je Jai essayé de souligner les principales différences entre les serveurs avec état et sans état. Les différences peuvent être étendues à des scénarios plus généraux.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *