Maison >interface Web >js tutoriel >Vous faire comprendre la différence et l'utilisation de la session et du cookie (tutoriel image et texte)

Vous faire comprendre la différence et l'utilisation de la session et du cookie (tutoriel image et texte)

亚连
亚连original
2018-05-19 09:45:533713parcourir

Cet article présente principalement le principe de fonctionnement, la différence et l'utilisation de la session et du cookie, ainsi que les avantages et les inconvénients lors de l'utilisation. En énumérant les différences et les principes, les lecteurs peuvent mieux comprendre la relation entre les deux amis dans le besoin. s'y référer. Suivant

Concept de cookie

Lors de la navigation sur certains sites Web, ces sites Web stockeront certaines données dans le client pour suivre l'utilisation de le site Web. Utilisateur, mettre en œuvre des fonctions définies par l'utilisateur.

S'il faut définir le délai d'expiration :

Si le délai d'expiration n'est pas défini, cela signifie que le cycle de vie. de ce cookie est pendant la session du navigateur, tant que vous fermez le navigateur et que le cookie disparaît
Ce cookie dont la durée de vie est la session de navigation est un cookie de session

Stockage :
Généralement stockés en mémoire, pas sur le disque dur ;
Si un délai d'expiration est défini, le navigateur enregistrera les cookies sur le disque dur. Si vous fermez et rouvrez le navigateur, ces cookies seront toujours valides. jusqu'à ce que le délai d'expiration défini soit dépassé ;
Les cookies stockés sur le disque dur peuvent être stockés dans différents emplacements partagés entre les processus du navigateur, tels que deux fenêtres IE.
Différents navigateurs ont différentes méthodes de traitement des cookies stockés en mémoire.

Principe :

Si le navigateur utilise des cookies, toutes les données sont enregistrées côté navigateur,
Par exemple, après votre connexion, les paramètres du serveur Nom d'utilisateur du cookie (nom d'utilisateur), puis lorsque vous demanderez à nouveau au serveur, le navigateur enverra le nom d'utilisateur au serveur. Ces variables ont certaines marques spéciales.
Le serveur l'interprétera comme une variable de cookie.
Ainsi, tant que le navigateur n'est pas fermé, la variable cookie sera toujours valide, elle peut donc garantir qu'elle ne sera pas déconnectée avant longtemps.
Si vous pouvez intercepter la variable de cookie d'un utilisateur, puis falsifier un paquet de données et l'envoyer, le serveur pensera toujours que vous êtes légitime. Par conséquent, la possibilité d’être attaqué à l’aide de cookies est relativement élevée.
Si la durée de validité est définie, alors il enregistrera le cookie sur le disque dur du client lors de votre prochaine visite sur le site, le navigateur vérifiera d'abord s'il y a un cookie. S'il y en a, il lira le cookie. . Puis envoyé au serveur.
Si vous enregistrez un cookie de forum sur votre machine, la durée de validité est d'un an. Si quelqu'un envahit votre machine, copie votre cookie, et le met dans le répertoire de son navigateur, alors il se connectera au site Internet. vous vous connectez avec votre identité.
Les cookies peuvent donc être falsifiés.
Bien sûr, vous avez besoin de quelques idées lors du forgeage. Vous pouvez directement copier le fichier cookie dans le répertoire cookie, mais le navigateur ne le reconnaîtra pas
Il a un fichier index.dat qui stocke l'heure de création du. fichier cookie et s'il a été modifié. Vous devez donc d'abord avoir le fichier cookie du site Web, et vous devez tromper le navigateur à partir du temps garanti
J'ai fait une fois une expérience sur le forum vbb de l'école, copié les cookies d'autres personnes. pour me connecter et faire semblant d'utiliser les noms d'autres personnes pour publier un message, aucun problème.

Utilisation des cookies :

  setcookie("user","zy",time()+3600); 设置user为zy,一小时之后失效;
  $_COOKIE['user'];     取回user值(名字)
  setcookie("user","",time()-3600); 删除cookie,第二个参数为空,第三个时间设置为小于系统的当前时间即可.

Ou définissez-le dans votre navigateur

Lors de l'utilisation de cookies, le cookie génère automatiquement un fichier texte et le stocke dans le dossier cookie temporaire du navigateur IE. Les étapes spécifiques pour supprimer le fichier cookie à l'aide du navigateur sont
> Navigateur IE/Options Internet, ouvrez la boîte de dialogue Options Internet,
> Cliquez sur le bouton Supprimer le cookie dans l'onglet Général, puis cliquez sur le bouton OK dans la boîte de dialogue contextuelle pour supprimer avec succès tous les fichiers cookies

Le concept de Session

La session est une structure de type HashTable stockée côté serveur (la mise en œuvre de chaque technologie de développement web peut être différente, il est donc appelé directement sous HashTable) pour stocker les données utilisateur ;

Fonction :

Il s'agit d'une collection d'objets stockés côté serveur pour réaliser le transfert de données entre le Web. pages.

Principe :

Lorsqu'un utilisateur demande une page Asp.net, le système crée automatiquement une session lors de la sortie de l'application ou de l'arrêt du serveur, la session ; sera révoqué. Lorsque le système crée une session, il alloue un long identifiant de chaîne pour gérer et suivre la session.

Le mécanisme de session est un mécanisme côté serveur. Le serveur utilise une structure similaire à une table de hachage (ou peut utiliser une table de hachage) pour enregistrer les informations.
 

Enregistrer :

Il est stocké dans le processus mémoire du segment serveur. Ce processus est assez instable et redémarre souvent. En cas de redémarrage, la session deviendra invalide et l'utilisateur devra se reconnecter. lorsque l'utilisateur remplit les informations, la session expirera lorsqu'elle est sur le point de se terminer et passera directement à la page de connexion

Si une session a été créée :

Lorsque le programme doit créer une session pour une requête client Lors de la session, le serveur vérifie d'abord si la requête du client contient un identifiant de session (appelé identifiant de session

S'il est inclus, cela signifie qu'un). Une session a déjà été créée pour ce client et le serveur suivra l'ID de session. Récupérez cette session en utilisant l'identifiant.... Utilisez (s'il n'est pas récupéré, un nouveau sera créé),


Si le la demande du client ne contient pas l'identifiant de session, créer une session pour le client et générer une session avec cette session L'identifiant de session associé,

La valeur de l'identifiant de session doit être une chaîne qui n'est ni répétée ni facile à trouver des modèles à contrefaire. Cet identifiant de session sera renvoyé au client dans cette sauvegarde de réponse.

(Résumé : Lors de la création d'une session, le serveur vérifie si le client contient l'identifiant de session. Si c'est le cas, il récupère la session en fonction de l'identifiant de session, sinon il doit en créer une nouvelle.)

Le formulaire d'implémentation client de la session (c'est-à-dire la méthode d'enregistrement de l'ID de session) :

Généralement, les navigateurs proposent deux façons d'enregistrer, l'autre permettant aux programmeurs de personnaliser l'implémentation à l'aide de champs cachés html. :

[1] Utiliser un cookie pour enregistrer, c'est la méthode la plus courante. L'implémentation de la fonction "Mémoriser mon statut de connexion" dans cet article est officiellement basée sur. cette méthode.

Le serveur envoie l'ID de session au navigateur en définissant un cookie.
Si nous ne définissons pas ce délai d'expiration, alors ce cookie ne sera pas stocké sur le disque dur. À la fermeture du navigateur, le cookie disparaîtra et l'ID de session sera perdu.

Si nous fixons cette heure à plusieurs jours plus tard, alors ce cookie sera enregistré sur le disque dur du client Même si le navigateur est fermé, cette valeur existera toujours. la prochaine fois que vous visiterez le site Web correspondant, celui-ci sera envoyé au serveur.

[2] La méthode d'utilisation des informations supplémentaires sur l'URL est la même, car nous voyons souvent des sites Web JSP avec aaa.jsp?JSESSIONID=*. Cette méthode est la même que la première méthode dans laquelle le délai d'expiration du cookie n'est pas défini. (La réécriture d'URL signifie ajouter l'identifiant de session directement à la fin du chemin de l'URL.)

[3] La troisième méthode consiste à ajouter un champ masqué au formulaire de la page. Cette première méthode est en fait la même que la deuxième méthode, sauf que la première envoie des données via GET et la seconde utilise POST pour envoyer des données. Mais évidemment, cette dernière solution est plus problématique.
Le champ caché du formulaire signifie que le serveur modifiera automatiquement le formulaire et ajoutera un champ caché afin que l'identifiant de session puisse être renvoyé au serveur lorsque le formulaire est soumis. Par exemple :
a62ea03a0e3fc98184ee7fac7a0f970e
& lt; input type = "text" & gt;
& lt;/form & gt;
En fait, cette technologie peut être simplement remplacée par l'URL de l'application ACTION.

utilisation de la session :

Démarrer avant d'enregistrer les informations utilisateur dans la session ; session_start(); Démarrer la session
$_SE SSION['user'] = "zy" ; Définir le nom d'utilisateur
Unset($_SESSION['user']); Détruire le nom d'utilisateur
session_destory(); Perdre les données de session stockées

La différence entre cookies et sessions :                                                                                                                                                                                                                                       

Pour faire simple, lorsque vous vous connectez à un site Web, si le serveur Web utilise une session, alors toutes les données sont stockées sur le serveur
Le client enverra la session en cours à chaque fois qu'il demandera le session_id. , le serveur détermine l'indicateur de données utilisateur correspondant en fonction du session_id actuel pour déterminer si l'utilisateur est connecté ou dispose de certaines autorisations.
Étant donné que les données sont stockées sur le serveur, vous ne pouvez pas les falsifier, mais si vous pouvez obtenir le session_id d'un utilisateur connecté, vous pouvez également falsifier avec succès la demande de l'utilisateur à l'aide d'un navigateur spécial.
Session_id est attribué de manière aléatoire lorsque le serveur et le client sont connectés. De manière générale, il n'y aura pas de duplication. Cependant, s'il y a un grand nombre de requêtes simultanées, il y a une possibilité de duplication.
Lorsque je me connecte à un site Web, mes propres informations sont initialement affichées. Après un certain temps, elles expirent et lorsque je les actualise, les informations des autres personnes sont réellement affichées.

La session est un espace de stockage côté serveur maintenu par le serveur d'applications. Lorsque l'utilisateur se connecte au serveur, un SessionID unique sera généré par le serveur et le SessionID est utilisé comme identifiant pour accéder au serveur. -Espace de stockage de session côté. Les données SessionID sont enregistrées sur le client et enregistrées avec Cookie Lorsque l'utilisateur soumet la page, le SessionID sera soumis au serveur pour accéder aux données de session. Ce processus ne nécessite pas l'intervention du développeur. Ainsi, une fois que le client aura désactivé les cookies, la session deviendra également invalide.

2. Les cookies ne sont pas très sûrs. D'autres peuvent analyser les cookies stockés localement et effectuer des sessions de tromperie COOKIE pour des raisons de sécurité.

3. La session sera enregistrée sur le serveur pendant une certaine durée. Lorsque l'accès augmente, cela consommera davantage de performances de votre serveur. Afin de réduire les performances du serveur, COOKIE doit être utilisé.

4. Les données enregistrées par un seul cookie ne peuvent pas dépasser 4K. De nombreux navigateurs limitent un site à enregistrer jusqu'à 20 cookies. (Les objets de session n'ont aucune limite sur la quantité de données stockées et peuvent stocker des types de données plus complexes)

Remarque :

la session est facile à échouer et l'utilisateur l'expérience est très mauvaise Mauvaise;

Bien que les cookies ne soient pas sécurisés, ils peuvent être cryptés;

Les cookies sont également divisés en cookies permanents et temporaires;

Les navigateurs ont une interdiction des cookies fonction, mais la plupart des utilisateurs Il ne sera pas défini ;

Assurez-vous de définir le délai d'expiration, sinon il disparaîtra à la fermeture du navigateur

Par exemple :

La fonction de mémorisation du mot de passe est d'utiliser un cookie permanent à écrire sur l'ordinateur client lors de votre prochaine connexion, les informations du cookie seront automatiquement envoyées au serveur.

L'application est une information globale, qui est partagée par tous les utilisateurs. Par exemple, elle peut enregistrer le nombre d'utilisateurs connectés à ce site Web et afficher ces informations à tous les utilisateurs.

La plus grande différence entre les deux est le cycle de vie. L'un va du démarrage d'IE à l'arrêt d'IE (dès que la page du navigateur est fermée, la session disparaît)
L'autre est le cycle de vie prédéfini. , ou des fichiers locaux de stockage permanent. (cookie)

J'ai compilé ce qui précède pour vous, j'espère que cela vous sera utile à l'avenir.

Articles associés :

nodejsExplication détaillée des étapes pour se connecter à la base de données mysql

au nœudQuels sont les moyens de crypter les mots de passe en js

vue traite les données obtenues par storejs

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn