La traduction chinoise de Session est appelée « conversation » et sa signification originale fait référence à une série d'actions/messages qui ont un début et une fin. Par exemple, lors d'un appel téléphonique, la série de processus allant du décrochage au téléphone. composer un numéro pour raccrocher le téléphone peut être appelé une session. La compréhension actuelle de Session dans la société est très confuse : on peut parfois voir les mots "Pendant une session de navigateur,...", la session fait ici référence à la période allant de l'ouverture à la fermeture d'une fenêtre de navigateur, vous pouvez également voir Quand ; faisant référence à la phrase « l'utilisateur (client) pendant une session », elle peut faire référence à une série d'actions de l'utilisateur (généralement une série d'actions liées à un objectif spécifique, comme la connexion, l'achat de biens et le paiement). Cependant, un tel processus d'achat en ligne peut parfois faire uniquement référence à une connexion ; la différence ne peut être déduite que du contexte.
Cependant, lorsque le mot Session est associé à un protocole réseau, il implique souvent "Connexion". et/ou « Conserver l'état » ont deux significations. « Orienté connexion » signifie que les parties communicantes doivent d'abord établir un canal de communication avant de communiquer, par exemple passer un appel téléphonique. La communication ne peut pas commencer tant que l'autre partie n'a pas répondu au téléphone. " "Statut" signifie que la partie communicante peut associer une série de messages afin que les messages puissent dépendre les uns des autres. Par exemple, un serveur peut reconnaître un ancien client qui revient et se rappeler que le client devait un dollar au magasin la dernière fois. . Ces exemples d'un type sont "une session TCP" ou "une session POP3".
Étant donné que cette confusion est irréversible, il est difficile d'avoir une norme unifiée pour définir la session, et lorsque nous lisons sur la session, nous n'en avons qu'une. peut le comprendre en déduisant du contexte : par exemple, lorsque nous passons un appel téléphonique, à partir du moment où nous passons l'appel jusqu'au moment où nous raccrocheons, le téléphone reste connecté, donc cet état connecté est appelé Session. C'est un état public. variable qui existe toujours lors de l'interaction entre le visiteur et l'ensemble du site Web. Lorsque le client ne prend pas en charge COOKIE, afin de garantir l'exactitude et la sécurité des données, la variable Session sera attribuée au visiteur qui visite le site Web. l'identifiant de session. Il est soit stocké dans le cookie du client, soit transmis via l'URL.
L'invention de Session comble les limitations du protocole HTTP : le protocole HTTP est considéré comme un protocole sans état et ne peut pas connaître l'état de navigation de l'utilisateur lorsqu'il le fait. est en cours d'utilisation. Une fois la réponse terminée, le serveur perd le contact avec le navigateur. Cela est conforme à l'objectif initial du protocole HTTP. Le client n'a qu'à demander au serveur de télécharger certains fichiers, ni le client ni le client. serveur. Il est nécessaire d'enregistrer le comportement passé de chacun, et chaque demande est indépendante, tout comme la relation entre un client et un distributeur automatique ou un hypermarché ordinaire (non adhérent).
Par conséquent, via Session (cookie), c'est une autre. manière. Une solution) enregistre les informations pertinentes de l'utilisateur pour confirmation lorsque l'utilisateur fait à nouveau une demande au serveur Web. L'invention des sessions permet à un utilisateur de sauvegarder ses informations lors du basculement entre plusieurs pages. ne peut pas être utilisé dans la page suivante (bien que le formulaire et l'url puissent également être implémentés, mais ce sont des méthodes très insatisfaisantes), et les variables enregistrées dans la session peuvent être utilisées comme variables globales.
Alors à quoi sert Session ? Tout le monde a utilisé le panier lors de ses achats en ligne. Vous pouvez à tout moment ajouter les produits que vous choisissez au panier, et enfin vous rendre à la caisse pour payer. Pendant tout le processus, le panier a joué le rôle de stockage temporaire des produits sélectionnés. Il est utilisé pour suivre les activités de l'utilisateur sur le site Web. C'est le rôle de la session. Il peut être utilisé pour l'authentification de l'identité de l'utilisateur et l'état du programme. enregistrement, et entre les pages, etc.
La technologie COOKIE est utilisée dans la mise en œuvre de Session. Session enregistrera un COOKIE contenant Session_id (numéro de session) côté client ; enregistrera d'autres variables de session côté serveur, telles que Session_name, etc. Lorsque l'utilisateur demande au serveur, le Session_id est également envoyé au serveur. En extrayant les variables enregistrées côté serveur via le Session_id, vous pouvez identifier qui est l'utilisateur. En même temps, il n'est pas difficile de comprendre pourquoi Session échoue parfois.
Lorsque le client désactive le COOKIE (cliquez sur "Outils" - "Options Internet" dans IE, cliquez sur "Sécurité" - "Niveau personnalisé" dans la boîte de dialogue contextuelle et définissez "Autoriser le COOKIE par conversation" sur désactivé), Session_id ne sera pas réussi et la session sera invalide à ce moment. Cependant, php5 peut vérifier automatiquement l'état des cookies sur la plate-forme Linux/Unix. Si le client est désactivé, le système ajoutera automatiquement le Session_id à l'URL et le transmettra. Les hôtes Windows n'ont pas cette fonction.
Fonctions communes et utilisation de la session
Session_start() : démarre une session ou renvoie une session existante.
Remarque : Cette fonction n'a aucun paramètre et la valeur de retour est vraie. Si vous utilisez des sessions basées sur des cookies, le navigateur ne doit avoir aucune sortie avant d'utiliser Session_start(), sinon l'erreur suivante se produira :
Attention : impossible d'envoyer le limiteur de cache de session - en-têtes déjà envoyés (sortie démarrée à /usr/local/apache/ htdocs/cga/member/1.php:2)...
Vous pouvez démarrer Session.auto_start=1 dans php.ini, afin de ne pas avoir besoin d'appeler Session_start() à chaque fois avant d'utiliser Session. Mais il existe certaines limitations à l'activation de cette option. Si Session.auto_start est effectivement activé, vous ne pouvez pas mettre d'objets dans la session car la définition de classe doit être chargée avant de démarrer la session pour recréer l'objet dans la session.
Toutes les variables enregistrées seront sérialisées une fois la demande terminée. Les variables enregistrées mais non définies sont marquées comme non définies. Ces variables ne sont pas non plus définies par le module de session lors des accès ultérieurs, sauf si l'utilisateur les définit ultérieurement.
Certains types de données ne peuvent pas être sérialisés et ne peuvent donc pas être enregistrés dans la session. Inclure des variables de ressources ou des objets avec des références circulaires (c'est-à-dire qu'un objet transmet une référence à lui-même à un autre objet).