Ce sont des séances? Comment fonctionnent-ils?
Je suis juste au début pour commencer à apprendre le développement d'application web, à l'aide de python. Je suis venue à travers les termes de "cookies" et "sessions". Je comprends cookies qu'ils stocker des informations dans une valeur clé de la paire sur le navigateur. Mais j'ai un peu de confusion au sujet des séances, en session trop nous stocker des données dans un cookie sur le navigateur de l'utilisateur.
Par exemple - je me connecter à l'aide de username='rasmus'
et password='default'
. Dans un tel cas, les données seront publiées sur le serveur qui est censé vérifier et de me connecter si authentifié. Cependant, pendant tout le processus, le serveur génère un ID de session qui sera stocké dans un cookie sur mon navigateur. Maintenant que le serveur stocke également cet ID de session dans son système de fichiers ou de données.
Mais basée sur l'ID de session, comment serait-il en mesure de connaître mon nom d'utilisateur lors de mon ultérieure traversée par le biais du site? Est-il stocker les données sur le serveur en tant que dict où la clé serait un ID de session et des détails comme username
, email
etc. les valeurs?
Je suis un peu perdue ici. Besoin d'aide.
- “Est-il stocker les données sur le serveur en tant que dict où la clé serait un id de session et des détails comme les nom d'utilisateur, e-mail etc les valeurs?” ...oui. Le ‘dict’ peut être une base de données relationnelle, mais qui est fondamentalement la façon dont il fonctionne.
- Je voulais comprendre les sessions web de trop, maintenant je comprends. J'ai fini par écrire mon propre wiki, si c'est de l'aider : machinesaredigging.com/2013/10/29/how-does-a-web-session-work
- Dans le cas où si vous ne savez pas: le stockage de mot de passe sur le côté client n'est pas sûr, même si le mot de passe est hashé (il ne fait pas de différence, en fait. Cracker pouvez directement saisir le mot de passe haché par la création d'un faux témoin) Il y a de meilleures façons de stocker l'état de connexion.
- J'ai écrit mon propre utilisant le protocole de niveau de détails - bitspedia.com/2012/05/...
Vous devez vous connecter pour publier un commentaire.
Parce que HTTP est sans état, afin d'associer une demande pour toute autre demande, vous avez besoin d'un moyen de stocker les données de l'utilisateur entre les requêtes HTTP.
Des Cookies ou des paramètres d'URL ( par ex. comme http://example.com/myPage?asd=lol&boo=pas de ) sont à la fois les moyens adaptés pour le transport des données entre 2 ou plus de demande.
Cependant, ils ne sont pas bon dans le cas où vous ne souhaitez pas que les données pour être lisible et modifiable sur le côté client.
La solution est de stocker des données côté serveur, donnez-lui un "id", et de laisser le client sait (et passer de retour à chaque requête http) que id. Là vous allez, des séances de mise en œuvre. Ou vous pouvez utiliser le client comme une pratique de stockage à distance, mais vous pouvez crypter les données et de garder le secret côté serveur.
Bien sûr il y a d'autres aspects à considérer, comme vous ne voulez pas les gens à pirater d'autres sessions, vous voulez que les sessions durent pas éternellement, mais à expiration, et ainsi de suite.
Dans votre exemple, l'id d'utilisateur (qui peut être de nom d'utilisateur ou un autre IDENTIFIANT unique de l'utilisateur de votre base de données) est stocké dans la session de données, de serveur-côté, après le succès de l'identification. Ensuite, à chaque requête HTTP que vous obtenez de la part du client, l'id de session (fourni par le client) vous permettra de la session correcte des données (stockées par le serveur) qui contient l'utilisateur authentifié id - de cette façon, votre code sera de savoir ce que l'utilisateur qu'il est en train de parler.
Simple Explication par analogie
Imaginez que vous êtes dans une banque, en essayant d'obtenir de l'argent de votre compte. Mais c'est sombre; la banque est noir: il n'y a pas de lumière et vous ne pouvez pas voir votre main devant votre visage. Vous êtes entouré par une autre de 20 personnes. Ils se ressemblent tous. Et tout le monde a la même voix. Et tout le monde est potentiellement un mauvais gars. En d'autres termes, HTTP est sans état.
Cette banque est un drôle de type de la banque pour les besoins de la discussion, voici comment les choses fonctionnent:
, Mais comment le caissier vous dire en dehors de tout le monde?
Le narrateur ne peut pas voir ou facilement vous reconnaître, de se souvenir, parce que les lumières sont tous à l'extérieur. Que faire si votre comptoir donne votre de 10 000 $de retrait à quelqu'un d'autre - la mauvaise personne?! Il est absolument vital que le narrateur puisse vous reconnaître comme celui qui a fait le retrait, de sorte que vous pouvez obtenir de l'argent (ou de ressources) que vous avez demandé.
Solution:
Lorsque vous sembler tout d'abord le narrateur, il ou elle vous dit quelque chose dans le secret:
Personne d'autre ne sait le secret code.
Exemple de la Façon dont j'ai Retiré de Trésorerie:
Donc je décide d'aller et réfrigérer pendant 20 minutes et puis plus tard je vais au comptoir et de dire "je voudrais récupérer mon retrait"
La caissière me demande: "qui êtes-vous??!"
"C'est moi, M. George Banques!"
"La preuve!"
Et puis je leur dis que mon code d'accès: GNASHEU329
"Certainement, Monsieur Banques!"
Que, fondamentalement, est de savoir comment fonctionne une session. Il permet à chacun d'être identifié de manière unique dans une mer de millions de personnes. Vous devez vous identifier chaque fois que vous faites affaire avec le conteur.
Si vous avez des questions ou ne sont pas claires - veuillez poster un commentaire et je vais essayer de clarifier les choses pour vous.
Explication via des Photos:
"Session" est le terme utilisé pour se référer à l'utilisateur d'un temps de navigation d'un site web. Il est destiné à représenter le temps entre leur première arrivée à une page du site jusqu'à l'arrêt de l'utilisation du site. Dans la pratique, il est impossible de savoir quand l'utilisateur se fait avec le site. Dans la plupart des serveurs il y a un délai d'attente qui s'achève automatiquement une session, sauf si une autre page est demandée par le même utilisateur.
La première fois qu'un utilisateur se connecte à un certain genre d'ID de session est créé (comment c'est fait dépend du logiciel de serveur web et le type d'authentification/identification que vous utilisez sur le site).
Comme les cookies, ce n'est généralement pas envoyé dans l'URL de plus, parce que c'est un problème de sécurité. Au lieu de cela, il est stocké avec un tas d'autres trucs que, collectivement, est aussi appelé la session. Les variables de Session sont des cookies - ils sont des paires nom-valeur envoyée avec la demande d'une page, et est retourné dans la page à partir du serveur, mais leurs noms sont définis dans un standard du web.
Certaines variables de session sont transmis en tant que Les en-têtes HTTP. Ils sont transmis en arrière dans les coulisses de chaque page de parcourir de sorte qu'ils n'apparaissent pas dans le navigateur et de dire à tout le monde quelque chose qui peut être privé. Parmi eux, le USER_AGENT, ou le type de navigateur demande la page, le PARRAIN ou la page du lien vers la page demandée, etc. Un logiciel de serveur web ajoute leurs propres en-têtes ou de transfert des données spécifiques au logiciel serveur. Mais les standards sont assez bien documentée.
Espère que ça aide.
HTTP est sans état de connexion du protocole, qui est, le serveur ne peut pas différencier entre les différentes connexions des différents utilisateurs.
D'où vient cookie, une fois qu'un client se connecte la première fois à un serveur, le serveur génère un nouvel id de session, qui plus tard sera envoyé au client à la valeur du cookie. Et à partir de maintenant, cet id de session permettra d'identifier la connexion cliente, parce qu'au sein de chaque requête HTTP, il va reportez-vous à la session l'id à l'intérieur des cookies.
Maintenant, pour chaque id de session, le serveur garde une structure de données, ce qui lui permet de stocker des données spécifiques à l'utilisateur, cette structure de données vous pouvez de façon abstraite session d'appel.
Pense de HTTP en tant que personne(A) qui a COURT TERME la PERTE de MÉMOIRE et oublie à chaque personne dès que la personne va hors de la vue.
Maintenant, de se souvenir des personnes différentes, Un prend une photo de cette personne et de la conserve. Chaque Personne pic a un numéro d'identification. Lorsque la personne vient de nouveau en vue, cette personne dit qu'il est numéro Un et trouve leur image par numéro d'identification.
Et voila !!, Un sait qui est cette personne.
En est de même avec HTTP. C'est la souffrance de COURT TERME la PERTE de MÉMOIRE. Il utilise les Sessions pour enregistrer tout ce que vous avez fait tout à l'aide d'un site web, et puis, quand vous revenez, elle vous identifie avec l'aide de Cookies(Cookie est comme un jeton).
La photo est la Session ici, et l'ID est le Témoin ici.