Maison >développement back-end >tutoriel php >Explication détaillée de la différence entre cookie et session

Explication détaillée de la différence entre cookie et session

jacklove
jackloveoriginal
2018-06-14 15:46:551848parcourir

Explication détaillée de la différence entre cookie et session

Ce sont des connaissances de base, mais il est nécessaire de les comprendre en profondeur. Donnons d’abord une brève introduction.

Définition des deux :

Lorsque vous naviguez sur le site Internet, le serveur WEB enverra dans un premier temps une petite quantité de données à votre ordinateur, et le cookie vous aidera à taper sur le site Internet. du texte ou certains choix sont enregistrés

. La prochaine fois que vous visiterez le même site Web, le serveur WEB vérifiera d'abord s'il a laissé des informations sur les cookies la dernière fois. Si tel est le cas, il jugera l'utilisateur en fonction du contenu du cookie

et. envoyer un message Web spécifique pour vous. L'utilisation de cookies est très courante. De nombreux sites Web fournissant des services personnalisés utilisent Cookie

pour identifier les utilisateurs afin d'envoyer du contenu personnalisé, tels que les sites Web de messagerie gratuite dotés d'interfaces Web.


Plus précisément, le mécanisme de cookie utilise une solution qui maintient l'état côté client, tandis que le mécanisme de session utilise une solution qui maintient l'état côté serveur.

Dans le même temps, nous voyons également que puisque la solution de maintien de l'état côté serveur doit également enregistrer une identité côté client, le mécanisme de session peut avoir besoin d'utiliser le mécanisme de cookie

pour atteindre l'objectif de sauvegarder l'identité, mais il a en fait d'autres options.

Mécanisme de cookies. La distribution des cookies orthodoxes est obtenue en étendant le protocole HTTP. Le serveur ajoute une ligne d'instructions spéciale à l'en-tête de réponse HTTP pour inviter le navigateur

à générer le cookie correspondant conformément aux instructions. Cependant, les scripts purement côté client tels que JavaScript ou VBScript peuvent également générer des cookies. L'utilisation de cookies

est automatiquement envoyée au serveur en arrière-plan par le navigateur selon certains principes. Le navigateur vérifie tous les cookies stockés. Si la portée déclarée d'un cookie

est supérieure ou égale à l'emplacement de la ressource à demander, le cookie est attaché à l'en-tête de requête HTTP de la ressource demandée et envoyé. au serveur.

Le contenu du cookie comprend principalement : le nom, la valeur, le délai d'expiration, le chemin et le domaine. Le chemin et le domaine forment ensemble la portée du cookie. Si le délai d'expiration n'est pas défini, cela signifie que la durée de vie de ce

cookie est pendant la session du navigateur. Lorsque la fenêtre du navigateur est fermée, le cookie disparaîtra. Ce type de cookie qui dure pendant toute la durée de la session du navigateur est appelé cookie de session.

Les cookies de session ne sont généralement pas stockés sur le disque dur mais en mémoire Bien entendu, ce comportement n'est pas réglementé par la spécification. Si un délai d'expiration est défini, le navigateur enregistrera le cookie

sur le disque dur. Si vous fermez et rouvrez le navigateur, ces cookies resteront valables jusqu'à ce que le délai d'expiration défini soit dépassé. Les cookies stockés sur le disque dur peuvent être partagés entre différents processus de navigateur, tels que deux fenêtres IE. Pour les cookies stockés en mémoire, différents navigateurs ont des méthodes de traitement différentes

mécanisme de 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.

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

(appelé identifiant de session). Si tel est le cas, Contient indique que. une session a déjà été créée pour ce client, et le serveur récupérera cette session en fonction de l'identifiant de session

(s'il ne peut pas être récupéré, une nouvelle sera créée si la demande du client ne l'inclut pas). l'identifiant de session, puis à cet effet, le client crée une session et génère un identifiant de session associé à cette session

La valeur de l'identifiant de session doit être une chaîne qui n'est ni répétée ni facile à trouver. contrefaçon. Cet identifiant de session sera renvoyé au client pour stockage dans cette réponse

. La méthode de sauvegarde de cet identifiant de session peut utiliser des cookies, afin que lors du processus d'interaction, le navigateur puisse envoyer automatiquement cet identifiant au serveur

selon les règles. Généralement, le nom de ce cookie est similaire à SEEESIONID. Mais les cookies peuvent être artificiellement désactivés, et il doit y avoir d'autres mécanismes pour que lorsque les cookies sont désactivés,

puisse toujours transmettre l'identifiant de session au serveur.

Une technique fréquemment utilisée est appelée réécriture d'URL, qui consiste à ajouter l'identifiant de session directement à la fin du chemin de l'URL. Il existe également une technique appelée formulaire de champs cachés. Autrement dit, le serveur

modifiera automatiquement le formulaire et ajoutera un champ masqué afin que l'identifiant de session puisse être renvoyé au serveur lorsque le formulaire est soumis. Par exemple :

<form name="testform" action="/xxx"> 
<input type="hidden" name="jsessionid" value="ByOK3vjFD75aPnrF7C2HmdnV6QZcEbzWoWiBYEnLerjQ99zWpBng!-145788764"> 
<input type="text"> 
</form>


En fait cette technique peut être simplement remplacée en appliquant la réécriture d'URL à l'action.

La différence entre les cookies et les sessions :

1. Les données des cookies sont stockées sur le navigateur du client, et les données de session sont placées sur le serveur.

2. Les cookies ne sont pas très sûrs. D'autres peuvent analyser le COOKIE stocké localement et procéder à une tromperie des COOKIES
Compte tenu de la sécurité, une session doit être utilisée.

3. La session sera enregistrée sur le serveur dans un certain délai. Lorsque l'accès augmente, cela consommera davantage de performances de votre serveur
Compte tenu de la réduction des 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.

5. Suggestion donc personnelle :
Stockez les informations importantes telles que les informations de connexion en tant que SESSION
Si d'autres informations doivent être conservées, elles peuvent être placées dans COOKIE

Cet article explique cookies et sessions Pour une explication détaillée de la différence, veuillez prêter attention au site Web chinois php pour un contenu plus connexe.

Recommandations associées :

Classe de pagination PHP+MySQL simple

Deux tableaux arborescents sans constructeur de récursion

Convertissez le HTML en Excel et implémentez des fonctions d'impression et de téléchargement

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
Article précédent:Comment utiliser cURL en phpArticle suivant:Comment utiliser cURL en php