Maison >développement back-end >tutoriel php >Quel est le lien et la différence entre les cookies et les sessions ?

Quel est le lien et la différence entre les cookies et les sessions ?

一个新手
一个新手original
2017-09-09 13:40:114189parcourir

Le protocole http est apatride, mais de nombreuses applications nécessitent que le serveur saisisse le statut du client, comme les achats en ligne. A ce moment, les cookies et les sessions jouent leur rôle

La différence entre. cookies et sessions Le mécanisme de contact

cookie adopte le schéma de maintien de l'état sur le client, tandis que le mécanisme session adopte le schéma de maintien de l'état sur la solution Le serveur maintient l'état , mais la solution de maintien de l'état côté serveur doit également enregistrer un identifiant sur le client, de sorte que le mécanisme de session peut avoir besoin d'utiliser le mécanisme de cookie pour atteindre l'objectif dans le but de sauvegarder l'identifiant, mais en fait il dispose d'un autre

mécanisme de cookie

  • technologie de cookie
    Données stockées sur le terminal local de l'utilisateur pour le suivi de session (généralement cryptées)

  • Composant cookie

    1. Cookie en-tête du message de réponse http Ligne
    2. Cookie. ligne d'en-tête du message de requête http
    3. Fichier cookie enregistré sur l'hôte client, géré par le navigateur
    4. Base de données backend sur le serveur web

  • Principe du cookie
    Quel est le lien et la différence entre les cookies et les sessions ?

La distribution des cookies est réalisée en étendant le protocole http. Le serveur ajoute une ligne d'instructions spéciales à l'en-tête de réponse http pour inviter le navigateur à générer le cookie correspondant en fonction. aux instructions, mais il y a une chose à laquelle il faut faire attention. Les scripts purement côté client tels que javascript ou vbscript peuvent également générer des cookies, il existe donc des risques potentiels pour la sécurité.

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. Si la portée déclarée du cookie est supérieure à l'emplacement de la ressource à demander, le cookie est attaché à l'en-tê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 constituent ensemble la portée du cookie. Si le délai d'expiration n'est pas défini, cela signifie que le cycle de vie de ce cookie est au cours du navigateur. session. Si la fenêtre du navigateur est fermée, le cookie disparaîtra. Ce type de cookie dont le cycle de vie est une session est appelé cookie de session. Les cookies de session ne sont généralement pas stockés sur le disque dur, mais sont stockés en mémoire. Si un délai d'expiration est défini, le navigateur enregistrera les cookies sur le disque dur. Après la fermeture et la réouverture du 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 utilisés. différents processus du navigateur. Partage

mécanisme de session

Dans le développement WEB, le serveur peut créer un objet de session (objet de session) pour le navigateur de chaque utilisateur. Remarque : un navigateur possède. un objet de session (par défaut). Par conséquent, lorsque les données utilisateur doivent être enregistrées, le programme serveur peut écrire les données utilisateur dans une session exclusive au navigateur de l'utilisateur. Lorsque l'utilisateur utilise le navigateur pour accéder à d'autres programmes, d'autres programmes peuvent récupérer les données utilisateur de la session utilisateur. Services aux utilisateurs.

La session est un mécanisme côté serveur. Le serveur utilise une structure similaire à une table de hachage pour enregistrer les informations. Lorsque le programme doit créer une session pour la demande d'un client, le serveur vérifie d'abord si la demande du client a été exécutée. been Contient un identifiant de session (appelé sessionid).

S'il est inclus, cela signifie qu'une session a déjà été créée pour ce client. Le serveur récupérera cette session en fonction de l'identifiant de session et l'utilisera s'il ne peut pas être récupéré, il en créera une nouvelle. un.

Si la demande du client n'inclut pas d'identifiant de session, créez une session pour le client et générez un identifiant de session associé à cette session. La valeur de l'identifiant de session doit être unique et irrégulière, et ne peut pas être facilement falsifiée. . chaîne, cet identifiant de session sera renvoyé au client pour stockage dans cette réponse.

Un cookie peut être utilisé pour enregistrer cet identifiant de session, afin que pendant le processus d'interaction, le navigateur puisse automatiquement envoyer cet identifiant au serveur selon les règles. Généralement, le nom de ce cookie est similaire à SESSIONID, mais les cookies peuvent être artificiellement désactivés, il doit donc y avoir d'autres mécanismes pour que l'identifiant de session puisse toujours être envoyé au serveur lorsque les cookies sont désactivés

Une méthode fréquemment utilisée one Cette technique est appelée Réécriture d'URL, qui ajoute l'identifiant de session directement à la fin du chemin de l'URL. Il existe également une technique appelée Former des champs cachés. Autrement dit, le serveur modifiera automatiquement le formulaire et ajoutera un champ masqué afin que l'identifiant de session puisse être envoyé au serveur lorsque le formulaire est soumis, tel que :

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

En résumé, la différence peut être résumée comme suit Contenu

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

  • Les cookies ne sont pas très sûrs, d'autres peuvent analyser les cookies stockés localement et effectuer une usurpation d'identité des cookies. Il est donc préférable de stocker des informations importantes telles que les informations de connexion dans la session. Si d'autres informations doivent être conservées, elles peuvent être stockées dans des cookies.

  • session Il sera enregistré sur le serveur pendant une certaine période de temps. Lorsque l'accès augmentera, il consommera plus de performances du serveur

    .
  • Les données enregistrées par un seul cookie ne peuvent pas dépasser 4k, et de nombreux navigateurs limitent un site à enregistrer jusqu'à 20 cookies

protocole http Il est apatride, mais de nombreuses applications nécessitent que le serveur saisisse le statut du client, comme les achats en ligne. A ce moment, les cookies et les sessions jouent leur rôle

.

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