Maison développement back-end tutoriel php La différence entre les cookies et les sessions en php et une explication détaillée de l'utilisation des cookies et des sessions

La différence entre les cookies et les sessions en php et une explication détaillée de l'utilisation des cookies et des sessions

Jul 10, 2017 am 10:06 AM
cookie php session

Cet article présente principalement la différence entre les cookies et la session en PHP et les informations pertinentes sur le résumé de l'utilisation des cookies et de la session. Il est très bon et a une valeur de référence. Les amis dans le besoin peuvent s'y référer

Plus précisément, les cookies sont enregistrés sur le "client", tandis que les sessions sont enregistrées sur le "serveur"

Les cookies sont étendus par http Le


cookie mis en œuvre par le protocole comprend principalement : le nom, la valeur, l'heure d'expiration, le chemin et le domaine


Si le cookie n'est pas paramétré avec une

vie ; cycle, puis Ces cookies sont fermés à la fermeture du navigateur. Ces cookies sont généralement stockés en mémoire plutôt que sur le disque dur. Si un cycle de vie est défini, l'inverse est vrai. fermés. Ces cookies restent valables jusqu'à ce que le délai d'expiration fixé soit dépassé.

la session stocke les informations sous une forme semblable à une table de hachage,


Lorsque le programme doit créer une session pour la demande d'un client, le serveur vérifie d'abord la demande du client. contient-il un identifiant de session


(appelé identifiant de session) ? S'il est inclus, cela signifie qu'une session a déjà été créée pour ce client, et le serveur récupérera cette session et l'utilisera en fonction. l'identifiant de session. (S'il ne peut pas être récupéré, un nouveau sera créé.) Si la demande du client ne contient pas d'identifiant de session, créez une session pour ce client et générez un identifiant de session associé à cette session. L'identifiant de session doit être une valeur qui ne sera pas répétée. , et il n'est pas facile de trouver le modèle pour contrefaire la

chaîne . Cet identifiant de session sera renvoyé au client dans cette réponse pour stockage. La méthode de sauvegarde de cet identifiant de session peut utiliser des cookies, de sorte que pendant le processus d'interaction, le navigateur puisse envoyer automatiquement cette identification 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 exister d'autres mécanismes pour toujours transmettre l'identifiant de session au serveur lorsque les cookies sont désactivés.

Avantages et inconvénients :

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 supérieur.


2. Les cookies ne sont pas très sûrs. D'autres peuvent analyser les cookies stockés localement et les tromper

La session doit être utilisée pour des raisons de sécurité.

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

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.


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é dans COOKIE

Récapitulatif de l'utilisation de la Session et des Cookies :

La Session et les cookies sont tous deux en

asp. Net Objets intégrés, quant à leurs différences, je n'entrerai pas dans les détails ici Parlons maintenant de choses plus pratiques :

Nous savons que les sites Web ont un système de gestion backend. , qui comprend la connexion et Pour quitter les deux fonctions, lors de la connexion, nous enregistrons souvent les informations de l'utilisateur dans la session ou dans le cookie pour une utilisation ultérieure. Alors, à quoi devons-nous faire attention lors de la connexion ?


1. Stockez certaines éléments sensibles dans la session. Des éléments moins sensibles peuvent être stockés dans la session ou les cookies. Par exemple, les noms d'utilisateur ne sont pas très sensibles, mais certains navigateurs ne prennent pas en charge l'utilisation des cookies. nous le sauvegarderons donc dans la session, mais la session se perd parfois facilement sur le serveur, nous pouvons donc l'utiliser en conjonction avec des cookies, c'est-à-dire lorsque la session est perdue, si le cookie est encore dans la période de validité que nous avons fixée À l'intérieur, vous pouvez à nouveau retirer la valeur du cookie et la mettre dans la session, nous ferions donc mieux d'utiliser session et cookie pour enregistrer le nom d'utilisateur et d'autres informations en même temps ou dans le

fichier de configuration

le code est le suivant :

<sessionState timeout="2" mode="StateServer" />
Copier après la connexion
peut également être utilisé pour résoudre le problème de perte de session


2. Nous espérons que le contexte la direction invalidera la session et se reconnectera s'il n'y a pas d'opération pendant une longue période. Utilisez session.timeout=5, en minutes, ce qui signifie que s'il n'y a pas d'autre opération dans les 5 minutes, elle sera invalide, ou vous pouvez le faire. configurer dans le fichier de configuration


3. Définition de la durée de validité des cookies


httpCookie.Expires = DateTime.Now.AddMinutes(2);


La période de validité des cookies est de 2 minutes


4. Lorsque vous jugez si vous avez l'autorisation d'accéder à la page Web, vous pouvez juger. comme suit :

if (Request.Cookies["httpCookie"] != null)
{
Session["admin"] = Request.Cookies["httpCookie"].Values["admin"].ToString();
}
if (Session["admin"] == null)
{
this.ClientScript.RegisterStartupScript(this.GetType(), "", "<script>alert(&#39;请重新登 录&#39;);location.href=&#39;logins.aspx&#39;</script>");
}
Copier après la connexion

Ce qui suit concerne la sortie. Ce qui devrait être mieux fait

1. la session et le cookie doivent être effacés à la sortie. Parlons maintenant brièvement des différences entre plusieurs méthodes de session :


Session.clear() : signifie effacer toutes les valeurs clés de session dans la session, mais la session existe toujours, équivalent à Session.RemoveAll()

Session["admin"] =null : Indique que la valeur de la clé spécifiée sera effacée et libérée. Elle est différente de session["admin"]="". Elle est effacée, mais la session n'est pas libérée. C'est équivalent à session.Remove(. "name");

Session.Abandon() supprime l'objet Session actuel, et ce sera une nouvelle session la prochaine fois.

La principale différence est que lors de l'utilisation de Session.Abandon, la méthode Session_End (en mode InProc) est appelée. La méthode Session_Start sera déclenchée lors de la prochaine requête. Session.Clear efface uniquement toutes les données de la session et ne termine pas la

Session, donc ces méthodes ne seront pas appelées. La méthode Abandon est utilisée pour terminer activement la session si cette méthode ne l'est pas. appelé, lorsque Après l'expiration de la session, la session en cours sera également automatiquement terminée.

2. Voyons comment effacer les cookies

A. tpCookie cookie = System.Web.HttpContext.Current.Request. Cookies .Get("tuser");

cookie.Expires = DateTime.Now.AddDays(-1);
System.Web.HttpContext.Current.Response.Cookies.Add(cookie);

B. tpCookie httpCookie = Request.Cookies["httpCookie"];

httpCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(httpCookie) ;

Les deux méthodes AB peuvent être utilisées

3. Effacez donc simplement la valeur actuelle de session, c'est-à-dire Session["admin'. ]=null Voilà. Les cookies peuvent être effacés selon la méthode ci-dessus

Suggestions et commentaires :

1. créer un Il est préférable d'écrire l'heure sur la page de déconnexion

2. Quelle que soit l'opération en cours, si vous pouvez utiliser If pour juger si elle est nulle, faites de votre mieux pour la juger pour empêcher l'apparition d'un pointeur nul Exception

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Guide d'installation et de mise à niveau de PHP 8.4 pour Ubuntu et Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 apporte plusieurs nouvelles fonctionnalités, améliorations de sécurité et de performances avec une bonne quantité de dépréciations et de suppressions de fonctionnalités. Ce guide explique comment installer PHP 8.4 ou mettre à niveau vers PHP 8.4 sur Ubuntu, Debian ou leurs dérivés. Bien qu'il soit possible de compiler PHP à partir des sources, son installation à partir d'un référentiel APT comme expliqué ci-dessous est souvent plus rapide et plus sécurisée car ces référentiels fourniront les dernières corrections de bogues et mises à jour de sécurité à l'avenir.

CakePHP travaillant avec la base de données CakePHP travaillant avec la base de données Sep 10, 2024 pm 05:25 PM

Travailler avec la base de données dans CakePHP est très simple. Nous comprendrons les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer) dans ce chapitre.

Date et heure de CakePHP Date et heure de CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler avec la date et l'heure dans cakephp4, nous allons utiliser la classe FrozenTime disponible.

Téléchargement de fichiers CakePHP Téléchargement de fichiers CakePHP Sep 10, 2024 pm 05:27 PM

Pour travailler sur le téléchargement de fichiers, nous allons utiliser l'assistant de formulaire. Voici un exemple de téléchargement de fichiers.

Discuter de CakePHP Discuter de CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP est un framework open source pour PHP. Il vise à faciliter grandement le développement, le déploiement et la maintenance d'applications. CakePHP est basé sur une architecture de type MVC à la fois puissante et facile à appréhender. Modèles, vues et contrôleurs gu

CakePHP créant des validateurs CakePHP créant des validateurs Sep 10, 2024 pm 05:26 PM

Le validateur peut être créé en ajoutant les deux lignes suivantes dans le contrôleur.

Journalisation CakePHP Journalisation CakePHP Sep 10, 2024 pm 05:26 PM

Se connecter à CakePHP est une tâche très simple. Il vous suffit d'utiliser une seule fonction. Vous pouvez enregistrer les erreurs, les exceptions, les activités des utilisateurs, les actions entreprises par les utilisateurs, pour tout processus en arrière-plan comme cronjob. La journalisation des données dans CakePHP est facile. La fonction log() est fournie

Comment configurer Visual Studio Code (VS Code) pour le développement PHP Comment configurer Visual Studio Code (VS Code) pour le développement PHP Dec 20, 2024 am 11:31 AM

Visual Studio Code, également connu sous le nom de VS Code, est un éditeur de code source gratuit – ou environnement de développement intégré (IDE) – disponible pour tous les principaux systèmes d'exploitation. Avec une large collection d'extensions pour de nombreux langages de programmation, VS Code peut être c

See all articles