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.
Réponses:
Même si plusieurs requêtes peuvent être envoyées via la même connexion HTTP, le serveur n'attache aucune signification particulière à leur arrivée sur la même socket. C'est uniquement une question de performance, destinée à minimiser le temps / la bande passante qui serait autrement passé à rétablir une connexion pour chaque demande.
En ce qui concerne HTTP, il s'agit toujours de requêtes distinctes et doivent contenir suffisamment d'informations à elles seules pour répondre à la requête. C'est l'essence même de «l'apatridie». Les demandes ne seront pas associées les unes aux autres en l'absence d'informations partagées dont le serveur a connaissance, qui dans la plupart des cas est un identifiant de session dans un cookie.
la source
De Wikipedia :
Ce qui rend le protocole sans état, c'est que le serveur n'est pas obligé de suivre l'état sur plusieurs demandes, pas qu'il ne peut pas le faire s'il le souhaite. Cela simplifie le contrat entre le client et le serveur et, dans de nombreux cas (par exemple, la diffusion de données statiques sur un CDN) minimise la quantité de données à transférer. Si les serveurs étaient tenus de maintenir l'état des visites des clients, la structure d'émission et de réponse aux demandes serait plus complexe. En l'état, la simplicité du modèle est l'une de ses plus grandes caractéristiques.
la source
Parce qu'un protocole sans état n'exige pas que le serveur conserve les informations de session ou l'état de chaque partenaire de communication pendant la durée de plusieurs demandes.
HTTP est un protocole sans état, ce qui signifie que la connexion entre le navigateur et le serveur est perdue une fois la transaction terminée.
la source
HTTP est appelé
stateless protocol
car chaque requête est exécutée indépendamment, sans aucune connaissance des requêtes qui ont été exécutées avant elle, ce qui signifie qu'une fois la transaction terminée, la connexion entre le navigateur et le serveur est également perdue.Ce qui rend le protocole,
stateless
c'est que dans sa conception originale, HTTP est relativement simplefile transfer protocol
:Il n'y avait aucune relation entretenue entre une connexion et une autre, même du même client. Cela simplifie le contrat entre le client et le serveur et, dans de nombreux cas, minimise la quantité de données à transférer.
la source
Si le protocole HTTP est donné en tant que protocole complet d'état, la fenêtre du navigateur utilise une connexion unique pour communiquer avec le serveur Web pour les demandes multiples envoyées à l'application Web.Cela donne la possibilité à la fenêtre du navigateur d'engager les connexions entre la fenêtre du navigateur et les serveurs Web pendant longtemps et de conserver dans un état inactif pendant une longue période.Cela peut créer la situation d'atteindre le maximum de connexions du serveur Web même si la plupart des connexions dans les clients sont inactives.
la source
HTTP est un protocole sans connexion et c'est un résultat direct que HTTP est un protocole sans état. Le serveur et le client ne se connaissent que lors d'une requête en cours. Ensuite, les deux s'oublient. En raison de cette nature du protocole, ni le client ni le navigateur ne peuvent conserver les informations entre les différentes demandes sur les pages Web.
la source
Qu'est-ce que l'apatride ??
Une fois la demande effectuée et la réponse renvoyée au client, la connexion sera abandonnée ou interrompue. Le serveur oubliera tout sur le demandeur.
Pourquoi apatride ??
Le Web choisit d'opter pour le protocole sans état. C'était un choix génial car le but initial du Web était de permettre aux documents (pages Web) d'être servis à des non extrêmement volumineux. des personnes utilisant du matériel très basique pour le serveur.
Le maintien d'une connexion de longue durée aurait été extrêmement gourmand en ressources.
Si le Web avait été choisi comme protocole avec état, la charge sur le serveur aurait été augmentée pour maintenir la connexion du visiteur.
la source
HTTP
est apatride.TCP
est avec état. Il n'y a pas de soi-disantHTTP connection
, mais seulementHTTP request
etHTTP response
. Nous n'avons besoin de rien à entretenir pour en faire un autreHTTP request
. Un en-tête de connexion qui est "keep-alive" signifie que leTCP
sera réutilisé par lesHTTP
demandes et réponses suivantes, au lieu de se déconnecter et de rétablir laTCP
connexion tout le temps.la source
Je pense que quelqu'un a choisi un nom très malheureux pour le concept STATELESS et c'est pourquoi tout le malentendu est causé. Il ne s'agit pas de stocker tout 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 vous envoie la "liste" de tous les éléments importants à traiter. Fais ton travail.
Serveur: Très bien .. laissez-moi prendre la responsabilité de filtrer ce qui est important pour vous donner la bonne réponse.
Ce qui veut dire que le serveur est "l'esclave" du client et doit oublier son "maître" après chaque requête. En fait, STATELESS 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
la source