209 votes

Pourquoi dit-on que "HTTP est un protocole sans état"?

HTTP a des cookies HTTP. Les cookies permettent au serveur de suivre l'état de l'utilisateur, le nombre de connexions, la dernière connexion, etc.

HTTP a des connexions persistantes (Keep-Alive) où plusieurs requêtes peuvent être envoyées à partir de la même connexion TCP.

5voto

Si le protocole HTTP est donné comme un protocole étatique complet, la fenêtre du navigateur utilise une seule connexion pour communiquer avec le serveur Web pour de multiples requêtes données à l'application Web. Cela donne à la fenêtre du navigateur la possibilité de maintenir les connexions entre la fenêtre du navigateur et les serveurs Web pendant une longue période et de les maintenir en état d'attente pendant longtemps. Cela peut créer la situation de atteindre le maximum de connexions du serveur Web même si la plupart des connexions chez les clients sont inactives.

5voto

Xing Points 31

HTTP est sans état. TCP est étatique. Il n'y a pas de soi-disant connexion HTTP, mais seulement requête HTTP et réponse HTTP. Nous n'avons besoin de rien à maintenir pour faire une autre requête HTTP. Un en-tête de connexion qui est "keep-alive" signifie que le TCP sera réutilisé par les requêtes HTTP et les résponses HTTP suivantes, au lieu de se déconnecter et de rétablir la connexion TCP tout le temps.

3voto

user3496740 Points 39

HTTP est une connexion sans état et c'est un résultat direct du fait que HTTP est un protocole sans état. Le serveur et le client ne sont conscients l'un de l'autre que pendant une requête en cours. Ensuite, ils oublient tous les deux l'un de l'autre. En raison de cette nature du protocole, ni le client ni le navigateur ne peuvent conserver d'informations entre différentes requêtes à travers les pages web.

3voto

JacobTheKnitter Points 91

Je pense que quelqu'un a choisi un nom très malheureux pour le concept de SANS ÉTAT et c'est pourquoi tout le malentendu est causé. Il ne s'agit pas de stocker n'importe quel type de ressources, mais plutôt de la relation entre le client et le serveur.

Client : Je garde toutes les ressources de mon côté et je vous envoie la "liste" de tous les éléments importants qui doivent être traités. Faites votre travail.

Serveur : D'accord.. laissez-moi prendre la responsabilité de filtrer ce qui est important pour vous donner la réponse appropriée.

Cela signifie que le serveur est l'"esclave" du client et doit oublier son "maître" après chaque requête. En fait, SANS ÉTAT se réfère uniquement à l'état du serveur.

https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm#sec_5_1_3

2voto

chirag soni Points 455

Qu'est-ce que Stateless ??

Une fois la requête effectuée et la réponse rendue au client, la connexion sera interrompue ou terminée. Le serveur oubliera tout du demandeur.

Pourquoi Stateless ??

Le web a choisi d'opter pour un protocole sans état. C'était un choix de génie car l'objectif initial du web était de permettre aux documents (pages web) d'être servis à un très grand nombre de personnes en utilisant un matériel de serveur très basique.

Maintenir une connexion longue aurait été extrêmement consommateur de ressources.

Si le web avait choisi le protocole stateful, la charge sur le serveur aurait été accrue pour maintenir la connexion des visiteurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X