web-dev-qa-db-fra.com

Différences entre les cookies et les sessions?

Je me forme au développement web et j'apprends à propos de JSP & Servlets. J'ai quelques connaissances de HttpSession - je les ai utilisées dans certains de mes exemples de projets.

Dans les navigateurs, j'ai vu l'option "supprimer les cookies". Si je supprime les cookies, le HttpSession est également supprimé.

Les cookies et la session sont-ils les mêmes? Quelles sont les différences entre eux?

148
blacktiger

Les sessions sont des fichiers côté serveur contenant des informations sur l'utilisateur, tandis que les cookies sont des fichiers côté client contenant des informations sur l'utilisateur. Les sessions ont un identifiant unique qui les mappe à des utilisateurs spécifiques. Cet identifiant peut être passé dans l'URL ou enregistré dans un cookie de session.

La plupart des sites modernes utilisent la deuxième approche, enregistrant l'identifiant dans un cookie au lieu de le transmettre dans une URL (ce qui pose un risque pour la sécurité). Vous utilisez probablement cette approche sans le savoir et en supprimant les cookies, vous effacez efficacement les sessions correspondantes lorsque vous supprimez l'identifiant de session unique contenu dans les cookies.

177
Eran Galperin

Un cookie est simplement une courte chaîne de texte qui est échangée entre le client et le serveur. Vous pouvez stocker name=bob; password=asdfas dans un cookie et envoyez-le en arrière pour identifier le client côté serveur. Vous pourriez penser à cela comme à un échange avec un caissier de banque qui n'a pas de mémoire à court terme et a besoin que vous vous identifiiez pour chaque transaction. Bien sûr, l’utilisation d’un cookie pour stocker ces informations est horrible et peu sûre. Les cookies sont également limités en taille.

Désormais, lorsque le caissier bancaire connaît son problème de mémoire, il peut écrire vos informations sur un papier et vous attribuer un numéro d'identification court. Ensuite, au lieu de donner votre numéro de compte et votre permis de conduire pour chaque transaction, vous pouvez simplement dire "Je suis le client 12"

Traduire cela en serveurs Web: le serveur stockera les informations pertinentes dans l'objet de session et créera un identifiant de session qu'il renverra au client dans un cookie. Lorsque le client renvoie le cookie, le serveur peut simplement rechercher l'objet de session à l'aide de l'ID. Donc, si vous supprimez le cookie, la session sera perdue.

Une autre alternative consiste pour le serveur à utiliser la réécriture d'URL pour échanger l'identifiant de session.

Supposons que vous ayez un lien - www.myserver.com/myApp.jsp Vous pouvez parcourir la page et réécrire chaque URL en tant que www.myserver.com/myApp.jsp?sessionID=asdf ou même www.myserver.com/asdf/myApp.jsp et échangez l'identifiant de cette façon. Cette technique est gérée par le conteneur d'applications Web et est généralement activée en définissant la configuration pour utiliser des sessions sans cookie.

300
Chris Cudmore

Les cookies et les sessions stockent tous les deux des informations sur l'utilisateur (pour rendre la requête HTTP statique), mais la différence est que les cookies stockent des informations côté client (navigateur) et que les sessions stockent des informations côté serveur. Un cookie est limité en ce sens qu'il stocke des informations sur des utilisateurs limités et ne stocke qu'un contenu limité pour chaque utilisateur. Une session n'est pas limitée de cette manière.

4
sanjay singh

Le cookie est fondamentalement un tableau mondial accessible à travers les navigateurs Web. Plusieurs fois utilisé pour envoyer/recevoir des valeurs. il agit comme un mécanisme de stockage pour accéder aux valeurs entre les formulaires. Les cookies peuvent être désactivés par le navigateur, ce qui ajoute une contrainte à leur utilisation par rapport à la session.

La session peut être définie comme quelque chose entre la connexion et la déconnexion. le temps écoulé entre la connexion et la déconnexion de l'utilisateur est une session. La session stocke les valeurs uniquement pour la durée de la session, c'est-à-dire avant la déconnexion. Les sessions permettent de suivre les activités de l'utilisateur une fois celui-ci connecté.

1
RishikeshD

Beaucoup de contributions sur ce fil déjà, résumez simplement un diagramme de séquence pour l'illustrer d'une autre manière.

enter image description here

Le est également un bon lien sur ce sujet, https://web.stanford.edu/~ouster/cgi-bin/cs142-fall10/lecture.php?topic=cookie

0
Gearon

Google JSESSIONID . Cela expliquera comment l'API Servlet utilise initialement la réécriture d'URL, puis, si les cookies sont activés, des cookies pour gérer les sessions.

HTTP étant sans état, le navigateur du client doit envoyer l'identifiant de sa session au serveur à chaque demande. Le serveur, quel que soit le moyen utilisé, utilise cet identifiant pour extraire toutes les données de cette session, les rendant disponibles pour la durée de vie de la demande.

0
Nick Holt

Le cookie est un moyen d'implémenter la session entre le client et le serveur, de cette manière, les informations de session stockées dans le cookie. Mais ce n’est pas le seul moyen de conserver les informations de session, une autre solution consiste à stocker les informations de session dans l’URL.

0
lessisawesome

Les cookies sont stockés dans le navigateur sous forme de fichier texte.Il est stocké une quantité limitée de données.Il n'autorise que 4kb [4096bytes] . La variable $ _ COOKIE ne contiendra pas plusieurs cookies portant le même nom

nous pouvons accéder facilement aux valeurs des cookies. Ainsi, il est moins sécurisé . Le setcookie () la fonction doit apparaître AVANT le

<html> 

étiquette.

Les sessions sont stockées dans le serveur. La quantité de données stockée est illimitée. Elle contient les variables multiples dans les sessions. nous ne pouvons pas accéder facilement aux valeurs des cookies. Ainsi, il est plus sécurisé .

Liens: différence entre cookies et sessions

0
Elangovan

Session dans Asp.net:

1. Maintient les données partout dans l'application.

2.Persiste les données si la session en cours est vivante. Si nous avons besoin de données accessibles à partir de plusieurs contrôleurs d’acteurs et de vues, la session est le moyen de stocker et de récupérer les données.

3.Les sessions sont des fichiers côté serveur contenant des informations sur l'utilisateur. [Les sessions sont un identifiant unique qui les mappe à des utilisateurs spécifiques]

Traduire cela en serveurs Web: le serveur stockera les informations pertinentes dans l'objet de session et créera un identifiant de session qu'il renverra au client dans un cookie. Lorsque le client renvoie le cookie, le serveur peut simplement rechercher l'objet de session à l'aide de l'ID. Donc, si vous supprimez le cookie, la session sera perdue.

0
Vicky