Maison > Article > développement back-end > Analyse des principes et phénomènes des cookies
En ce qui concerne les cookies, il faut commencer par le protocole http. Qu'est-ce que le protocole http ? Au sens littéral, un accord est un accord. S'il y a un accord, il doit y avoir au moins deux participants, et la communication entre les participants doit suivre ces spécifications.
Tout comme Baiyun et Kurotsuchi sont ensemble, il est stipulé qu'à l'avenir, les deux communiqueront dans la langue convenue par les deux, et Kurotsuchi le fera. faites-le quand il voit cette action. Il a jugé, oh, il s'est avéré qu'il allait se frapper les jambes, alors il a immédiatement sauté sur lui et lui a frappé les jambes. Baiyun a tendu la main droite et Kurotsuchi l'a regardé et a pensé : Oh mon dieu, c'est le moment de boire de l'eau, alors il a immédiatement remis l'eau. À ce moment-là, Baiyun a tendu son pied gauche et Kurotsuchi l'a immédiatement embrassé. lui. C'est précisément parce que la communication entre les deux personnes a suivi l'accord de chacun qu'elle est devenue facile à comprendre et exécutée efficacement.
Il en va de même pour le protocole http. Les participants à ce protocole sont le client (Baiyun) et le serveur (Black Earth).
C'est avec le protocole http que la communication entre le client et le serveur devient facile et compréhensible. Imaginez, si Baiyun et Heitu ne standardisaient pas leurs méthodes de communication à l'avance comme convenu, alors Baiyun contacterait With. son pied gauche, oncle Kurotsuchi pensait probablement qu'il allait se donner un coup de pied.
Ensuite, regardons quelles sont les caractéristiques du protocole http ?
1. Prise en charge du mode client/serveur
2. Simple et rapide
3. 5 , apatride.
Prise en charge du mode client/serveur : en termes simples, il prend en charge la communication entre deux personnes, c'est-à-dire qu'il permet à Baiyun et Heitui de se parler.
Simple et pratique : tout comme la communication entre Baiyun et Heitu, c'est aussi simple que d'étendre la main gauche et la main droite. Il en va de même pour le protocole http. Qu'il s'agisse d'une demande client ou d'une réponse du serveur, la définition de l'en-tête, de la méthode et du corps du message correspondants peut être communiquée à l'autre partie, et les deux parties peuvent comprendre la signification de l'autre partie.
La raison de la flexibilité est que HTTP permet la transmission de tout type d'objet de données. Le type de transmission peut être marqué par Content-Type.
Aucune connexion signifie que le client demande au serveur et que le serveur déconnecte automatiquement le lien après avoir terminé la réponse. C'est comme si Bai Yun avait tendu la main gauche, Kurotsuchi est venu lui marteler les jambes, puis s'est éloigné automatiquement pour faire autre chose.
Apatride signifie que le client demande au serveur, et après que le serveur ait répondu, il n'enregistrera aucune donnée pour cette communication de connexion. Tout comme Baiyun a tendu la main gauche, Kurotsuchi s'est approché et a martelé les jambes. Après avoir martelé les jambes, vous avez demandé à l'oncle Kurotsuchi ce que vous aviez dit lorsque vous avez battu les jambes.
Bien sûr, il existe bien plus de protocoles http que cela. Nous parlerons des détails plus tard. Avec la connaissance du protocole http ci-dessus, nous présenterons nos cookies.
Comme mentionné ci-dessus, Baiyun et Kurotsuchi se sont mis d'accord sur leur propre méthode de communication, qui est très efficace et simple, mais leur communication présente également certains problèmes, à savoir l'apatridie du protocole http, c'est-à-dire Oncle Kurotsuchi Lorsqu'il frappait les jambes de Baiyun, il ne savait pas ce qui se disait. Son cerveau ne fonctionnait pas bien et il ne se souvenait que de quelques choses. il se frappait les jambes, Baiyun a dit à Kurotsuchi, "Toi La force de la main était trop forte, et cela m'a fait tellement mal. S'il te plaît, sois plus doux. Après avoir entendu cela, l'oncle aux cheveux noirs a immédiatement adouci la force de la main, et puis il s'est éloigné pour faire autre chose après le martelage. Dès que Kurotsuchi est parti, Baiyun a de nouveau tendu la main gauche. Kurotsuchi s'est rapidement approché et s'est frappé les jambes, frappant toujours durement ses jambes. Baiyun est devenu anxieux. Mettez vos mains doucement, et les jambes de la vieille femme étaient engourdies après l'avoir battue. Oncle Kurotsuchi avait l'air confus, "Baiser, je ne m'en souviens vraiment pas."
Que faire ?
Si cela continue, l'oncle Kurotsuchi mettra Baiyun en colère à mort, alors quelqu'un a fait une suggestion. Chaque fois que Baiyun tend la main ou étire ses jambes, elle jette une note, qui enregistre certaines de ses exigences personnelles. L'oncle Kurotsuchi a reçu la note, et tout en lisant la note, il a couru et a effectué les opérations de réponse correspondantes, il a rendu la note à Bai Yun, afin que Bai Yun puisse écrire ses exigences lorsqu'il viendrait le voir. la prochaine fois. Jetez cette note à Kurotsuchi.
Bien que cette méthode soit un peu barbare, elle résout le problème de l'oncle Kurotsuchi qui ne peut se souvenir de rien.
Oui, la note ci-dessus est en fait le cookie dont nous allons parler aujourd'hui. Lorsque le client initie une requête au serveur, le client apporte le cookie pour demander au serveur. Avec ce cookie, il peut s'en souvenir. L'état et les informations associées de la dernière demande sont stockés afin que la communication ait un état et une mémoire.
De nombreuses personnes ne recommandent pas d'utiliser des cookies lors du stockage de certaines données. La raison en est que chaque fois que le client demande au serveur, il apportera des informations sur les cookies. Bien qu'un cookie ait généralement une valeur de seulement 4K, Une fois le volume augmenté, cela consommera beaucoup de bande passante.
Expliquons ensuite quelques principes de base de fonctionnement des cookies :
Les cookies transfèrent principalement des données via l'en-tête HTTPHeader. Autrement dit, les données sont transmises dans les en-têtes de requête et les en-têtes de message. Le mécanisme Cookie définit deux en-têtes : l'en-tête Set-Cookie et l'en-tête Cookie. set-cookie existe dans l'en-tête du message de la réponse du serveur. Le cookie existe dans l'en-tête du message de la demande du client.
Le processus de fonctionnement des cookies est le suivant :
(1) Client Tapez l'URL du serveur Web dans la barre d'adresse du navigateur et le navigateur envoie une demande de lecture de la page Web.
(2) Après avoir reçu la requête, le serveur génère un en-tête Set-Cookie, le met dans le message HTTP et le renvoie au client pour lancer une session.
(3) Une fois que le client a reçu la réponse, s'il souhaite continuer la session, le contenu de Set-Cookie-ie sera extrait pour former un fichier Cookie.txt et stocké sur l'ordinateur client.
(4) Lorsque le client fait à nouveau une requête au serveur, le navigateur recherche d'abord le fichier Cookie.txt correspondant au site Internet sur l'ordinateur. S'il est trouvé, un en-tête Cookie est généré sur la base de ce Cookie.txt et placé dans le message de requête HTTP et envoyé au serveur.
(5) Le serveur reçoit une requête contenant un en-tête de Cookie, récupère les informations relatives à l'utilisateur dans son Cookie, génère une page de réponse demandée par le client et la transmet au client. Chaque demande de page Web effectuée par le navigateur peut transmettre le fichier cookie existant, par exemple, le navigateur ouvre ou actualise l'opération de la page Web.
C'est essentiellement ainsi que fonctionnent les cookies.
De plus, il existe deux manières de paramétrer les cookies en php :
1 Appeler la fonction setCookie
2 Appeler la fonction session_start
Voici un brève explication de session_start Une fois session_start() écrit, le serveur générera un fichier nommé session_id sur le serveur, et enverra en même temps l'en-tête set-cookie au client, avec le contenu de phpsessid = le nom de fichier de la session stocké sur le serveur, c'est-à-dire session_id, le client générera un fichier cookie lors de la réception de la réponse, c'est-à-dire que session_start contient en fait l'opération setCookie, mais elle n'est pas aussi flexible que setCookie.
Recommandations associées :
Explication détaillée des cookies pour le contrôle de session PHP
Explication détaillée de l'utilisation des cookies
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!