


Explication détaillée du fonctionnement des cookies JavaScript_Connaissances de base
Que sont les cookies
"Un cookie est une variable stockée sur l'ordinateur du visiteur. Ce cookie est envoyé chaque fois que le même ordinateur demande une page via un navigateur. Vous pouvez utiliser JavaScript pour créer et récupérer la valeur du cookie." - w3school
Un cookie est un fichier créé par un site Web visité pour stocker des informations de navigation, telles que des informations de profil.
Du point de vue JavaScript, les cookies ne sont que quelques informations sous forme de chaîne. Ces informations sont stockées sur l'ordinateur du client et sont utilisées pour transférer des informations entre l'ordinateur client et le serveur.
Ces informations peuvent être lues ou définies via document.cookie en JavaScript. Étant donné que les cookies sont principalement utilisés pour la communication entre le client et le serveur, outre JavaScript, les langages côté serveur (tels que PHP) peuvent également accéder aux cookies.
Bases des cookies
Les cookies ont une taille limite. Les données stockées dans chaque cookie ne peuvent pas dépasser 4 Ko. Si la longueur de la chaîne du cookie dépasse 4 Ko, cet attribut renverra une chaîne vide.
Étant donné que les cookies sont finalement stockés dans l'ordinateur client sous forme de fichiers, il est très pratique de visualiser et de modifier les cookies. C'est pourquoi on dit souvent que les cookies ne peuvent pas stocker d'informations importantes.
Le format de chaque cookie est le suivant :
Les cookies ont une date d'expiration. Par défaut, le cycle de vie d'un cookie se termine à la fermeture du navigateur. Si vous souhaitez que le cookie soit utilisable après la fermeture du navigateur, vous devez définir une période de validité pour le cookie, qui correspond à la date d'expiration du cookie.
alert(typeof document.cookie) Le résultat est une chaîne. J'ai pensé un jour que c'était un tableau et j'ai fait une blague... 囧
Les cookies ont la notion de domaine et de chemin. Le domaine est le concept de domaine Étant donné que le navigateur est un environnement soucieux de la sécurité, différents domaines ne peuvent pas accéder aux cookies les uns des autres (bien sûr, l'accès entre domaines aux cookies peut être obtenu via des paramètres spéciaux). Le chemin est le concept de routage. Un cookie créé par une page Web n'est accessible que par toutes les pages Web du même répertoire ou sous-répertoire que cette page Web, mais n'est pas accessible par les pages Web d'autres répertoires (cette phrase est un peu déroutante, je vais regarder). nous y reviendrons plus tard) C’est plus facile à comprendre avec un exemple).
En fait, la manière de créer des cookies est quelque peu similaire à la manière de définir des variables. Les deux nécessitent l'utilisation de noms de cookies et de valeurs de cookies. Le même site Web peut créer plusieurs cookies, et plusieurs cookies peuvent être stockés dans le même fichier de cookies.
FAQ sur les cookies
Il existe deux types de cookies :
Cookies définis par le site Web actuel que vous parcourez
Cookies tiers provenant d'autres sources de domaine telles que des publicités intégrées ou des images sur des pages Web (les sites Web peuvent suivre vos informations d'utilisation en utilisant ces cookies)
Les connaissances de base viennent d'évoquer la question du cycle de vie des cookies. En fait, les cookies peuvent être grossièrement divisés en deux états :
Cookies temporaires. Le site Web stockera certaines de vos informations personnelles lors de son utilisation actuelle, et ces informations seront également supprimées de votre ordinateur à la fermeture du navigateur
Définissez les cookies avec un délai d'expiration. Même si le navigateur est fermé, ces informations seront toujours présentes sur l'ordinateur. Tels que le nom de connexion et le mot de passe, vous n'avez donc pas besoin de vous connecter à chaque fois que vous accédez à un site spécifique. Ce cookie peut rester sur votre ordinateur pendant des jours, des mois voire des années
Il existe deux manières d'effacer les cookies :
Effacer les cookies via les outils du navigateur (il existe des outils tiers, et le navigateur lui-même a également cette fonction)
Effacer les cookies en définissant leur date d'expiration
Remarque : La suppression des cookies peut parfois entraîner un dysfonctionnement de certaines pages Web
Les navigateurs peuvent être configurés pour accepter et refuser l'accès aux cookies.
Pour des raisons de fonctionnalité et de performances, il est recommandé de réduire le nombre de cookies utilisés et d'essayer d'utiliser autant que possible des petits cookies.
Les détails de l'encodage des cookies seront introduits séparément dans le chapitre sur les cookies avancés.
S'il s'agit d'une page sur le disque local, la console Chrome ne peut pas utiliser JavaScript pour lire et écrire des cookies. La solution... changer de navigateur^_^.
Utilisation de base des cookies
1. Opération d'accès simple
Lorsque vous utilisez JavaScript pour accéder aux cookies, vous devez utiliser l'attribut cookie de l'objet Document ; une ligne de code décrit comment créer et modifier un cookie :
document.cookie = 'nom d'utilisateur=Darren';
Dans le code ci-dessus, « username » représente le nom du cookie et « Darren » représente la valeur correspondant à ce nom. Si le nom du cookie n'existe pas, alors un nouveau cookie est créé ; s'il existe, la valeur correspondant au nom du cookie est modifiée. Si vous souhaitez créer des cookies plusieurs fois, utilisez simplement cette méthode à plusieurs reprises.
2. Opération de lecture des cookies
Il est en fait très simple de lire les cookies avec précision, il suffit d'opérer sur des chaînes. Copiez ce code de w3school pour analyse :
fonction getCookie(c_name){
if (document.cookie.length>0){ //Vérifiez d'abord si le cookie est vide, s'il est vide, retournez ""
c_start=document.cookie.indexOf(c_name "=") //Vérifiez si ce cookie existe via l'indexOf() de l'objet String. S'il n'existe pas, ce sera -1
. if (c_start!=-1){
c_start=c_start c_name.length 1 //Le dernier 1 représente en fait le nombre "=", de sorte que la position de départ de la valeur du cookie soit obtenue
c_end=document.cookie.indexOf(";",c_start) //En fait, j'étais un peu étourdi lorsque j'ai vu pour la première fois le deuxième paramètre de indexOf(). Plus tard, je me suis souvenu que cela signifiait la position de l'index de départ spécifiée... Ceci. la phrase est pour obtenir la position finale de la valeur. Parce que nous devons déterminer s'il s'agit du dernier élément, nous pouvons le juger selon l'existence du signe ";"
if (c_end==-1) c_end=document.cookie.length
Return unescape(document.cookie.substring(c_start,c_end)) //La valeur est obtenue via substring(). Si vous voulez comprendre unescape(), vous devez d'abord savoir ce que fait escape(). C'est une base très importante. Si vous voulez en savoir plus, vous pouvez effectuer une recherche. Les détails de l'encodage des cookies seront également expliqués à la fin. l'article
}
}
retourner ""
}
Bien sûr, il existe de nombreuses façons de lire les cookies, comme les tableaux, les expressions régulières, etc., je n'entrerai donc pas dans les détails ici.
3. Définir la durée de validité des cookies
Le cycle de vie des cookies qui apparaît souvent dans les articles est la durée de validité et la période d'expiration, c'est-à-dire la durée d'existence du cookie. Par défaut, les cookies sont automatiquement effacés à la fermeture du navigateur, mais nous pouvons définir la période de validité du cookie jusqu'à son expiration. La syntaxe est la suivante :
document.cookie = "nom=valeur;expires=date";
La valeur de date dans le code ci-dessus est une chaîne de date au format GMT (Greenwich Mean Time) et est générée comme suit :
var _date = nouvelle Date();
_date.setDate(_date.getDate() 30);
_date.toGMTString();
Les trois lignes de code ci-dessus se décomposent en plusieurs étapes :
Générez une instance Date via new pour obtenir l'heure actuelle
La méthode getDate() obtient un certain jour dans le mois local en cours, puis en ajoute 30. J'espère que ce cookie pourra être enregistré localement pendant 30 jours
Réglez ensuite l'heure via la méthode setDate()
Enfin, utilisez la méthode toGMTString() pour convertir l'objet Date en chaîne et renvoyer le résultat
Utilisez la fonction complète suivante pour illustrer ce à quoi nous devons prêter attention lors du processus de création de cookies - copiée de w3school. Créez une fonction qui stocke des informations dans un cookie :
function setCookie(c_name, valeur, expiredays){
var exdate=nouvelle Date();
exdate.setDate(exdate.getDate() expiredays);
Document.cookie=c_name "=" escape(value) ((expiredays==null) ? "" : ";expires=" exdate.toGMTString());
>
//Utilisation : setCookie('username','Darren',30)
Maintenant, notre fonction définit la durée de validité du cookie en fonction du nombre de jours. Si vous souhaitez la définir dans d'autres unités (comme les heures), alors modifiez la troisième ligne de code :
exdate.setHours(exdate.getHours() expiredays);
Après avoir défini cette méthode, la durée de validité des cookies sera basée sur des heures.
Il existe deux méthodes pour effacer les cookies mentionnées dans la FAQ. Ce dont nous allons parler maintenant, c'est d'invalider les cookies en définissant la période de validité sur une heure expirée. Maintenant qu'il existe un moyen de définir la période de validité, les amis intéressés sont invités à le faire eux-mêmes ^_^. Continuons avec le sujet plus approfondi des cookies.
Chapitre avancé sur les cookies
1.Concept de chemin de cookie
Dans les connaissances de base, il est mentionné que les cookies ont les notions de domaine et de chemin. Introduisons maintenant le rôle de chemin dans les cookies.
Les cookies sont généralement créés lorsqu'un utilisateur visite une page, mais ce cookie n'est pas accessible uniquement sur la page où le cookie est créé.
Par défaut, seules les pages Web du même répertoire ou sous-répertoire que la page qui a créé le cookie sont accessibles. Cela est dû à des considérations de sécurité, de sorte que toutes les pages ne peuvent pas accéder librement aux cookies créés par d'autres pages. Par exemple :
Créez un cookie sur la page "http://www.jb51.net/Darren_code/", puis la page sous le chemin "/Darren_code/" ressemblera à : "http://www.jb51.net/ Darren_code /archive/2011/11/07/Cookie.html" Cette page peut obtenir des informations sur les cookies par défaut.
Par défaut, "http://www.jb51.net" ou "http://www.jb51.net/xxxx/" ne peut pas accéder à ce cookie (le simple fait de le regarder ne sert à rien, la pratique dira la vérité) ^_^).
Alors, comment rendre ce cookie accessible à d'autres répertoires ou répertoires parents peut être réalisé en définissant le chemin du cookie. Les exemples sont les suivants :
document.cookie = "nom=valeur;chemin=chemin"
document.cookie = "name=value;expires=date;path=path"
Le chemin en rouge est le chemin du cookie. L'exemple le plus courant consiste à placer le cookie dans le répertoire, afin que quelle que soit la sous-page qui crée le cookie, toutes les pages puissent y accéder :
document.cookie = "name=Darren;path=/";
2. Concept de domaine de cookies
Path peut résoudre le problème de l'accès aux cookies dans le même domaine. Passons maintenant au problème des cookies réalisant l'accès entre les mêmes domaines. La syntaxe est la suivante :
document.cookie = "name=value;path=path;domain=domain";
Le domaine rouge est la valeur de l'ensemble de domaines de cookies.
Par exemple, "www.qq.com" et "sports.qq.com" partagent un nom de domaine associé "qq.com". Si nous voulons que le cookie sous "sports.qq.com" soit "www. qq. com" pour y accéder, nous devons utiliser l'attribut domain du cookie et définir l'attribut path sur "/". Exemple :
document.cookie = "username=Darren;path=/;domain=qq.com";
Remarque : Il doit s'agir d'un accès entre le même domaine. La valeur du domaine ne peut pas être définie sur un nom de domaine autre que le domaine principal.
3. Sécurité des cookies
Habituellement, les informations des cookies utilisent des connexions HTTP pour transférer des données. Cette méthode de transfert est facile à visualiser, de sorte que les informations stockées dans les cookies sont faciles à voler. Si le contenu transmis dans le cookie est important, une transmission de données cryptée est requise.
Le nom de cet attribut de cookie est donc "secure", et la valeur par défaut est vide. Si l'attribut d'un cookie est sécurisé, les données sont transférées entre celui-ci et le serveur via HTTPS ou d'autres protocoles sécurisés. La syntaxe est la suivante :
document.cookie = "nom d'utilisateur=Darren;secure"
Définir le cookie comme sécurisé garantit uniquement que le processus de transmission des données entre le cookie et le serveur est crypté et que le fichier cookie stocké localement n'est pas crypté. Si vous souhaitez que les cookies locaux soient cryptés, vous devez crypter les données vous-même.
Remarque : même si l'attribut sécurisé est défini, cela ne signifie pas que les autres ne peuvent pas voir les informations des cookies enregistrées localement sur votre machine, donc en dernière analyse, ne mettez simplement pas d'informations importantes dans les cookies, 囧...
4. Détails de l'encodage des cookies
A l'origine je souhaitais introduire la connaissance de l'encodage des cookies dans la rubrique FAQ, car si vous ne comprenez pas cela, le problème d'encodage est bel et bien un écueil, je vais donc vous l'expliquer en détail.
Lors de la saisie des informations sur les cookies, les symboles spéciaux tels que les espaces, les points-virgules et les virgules ne peuvent pas être inclus. En général, les informations sur les cookies sont stockées de manière non codée. Par conséquent, avant de définir les informations du cookie, vous devez d'abord utiliser la fonction escape() pour encoder les informations sur la valeur du cookie, puis utiliser la fonction unescape() pour reconvertir la valeur lorsque la valeur du cookie est obtenue. Par exemple, lors du paramétrage des cookies :
document.cookie = nom "=" échappement (valeur);
Regardons la phrase à l'intérieur de getCookie() mentionnée dans l'utilisation de base :
return unescape(document.cookie.substring(c_start,c_end));
De cette façon, vous n'avez pas à craindre que les informations des cookies soient incorrectes en raison de symboles spéciaux apparaissant dans la valeur du cookie.
Code personnel
/*Définir le cookie*/
fonction setCookie(c_name, valeur, jours d'expiration, chemin, domaine, sécurisé) {
var exdate = new Date(); //Obtenir l'heure actuelle
exdate.setDate(exdate.getDate() expiredays); //Délai d'expiration
document.cookie = c_name "=" //nom du cookie
escape(value) //Encoder la valeur du cookie
((expiredays == null) ? "" : ";expires=" exdate.toGMTString()) //Définir l'heure d'expiration
((path == null) ? '/' : ';path=' path) //Définir le chemin d'accès
((domain == null) ? '' : ';domain=' domain) //Définir le domaine d'accès
((secure == null) ? '' : ';secure=' secure); //Définir s'il faut chiffrer
};
setCookie('test', 'name=sheng;sex=men;lancer=dullbear', 30);
setCookie('bb', 'name=sheng;sex=men', 30);
/*Obtenir un cookie*/
fonction getCookie(c_name, index) {
var cookies = document.cookie; //Obtenir la valeur du cookie
var cookieLen = cookies.length; //Obtenir la longueur du cookie
if (cookieLen > 0) { //Lorsque le cookie n'est pas vide
var c_start = cookies.indexOf(c_name '='); //Trouver la valeur du cookie et le numéro de série dans le cookie
if (c_start > -1) { //Lorsque la valeur du cookie existe
c_start = c_name.length 1; //Obtenir le numéro de séquence de départ de la valeur du cookie
var c_end = cookies.indexOf(';', c_start); //Obtenir le numéro de séquence de fin de la valeur du cookie
If (c_end == -1) { //Quand le cookie est le dernier
c_end = cookieLen; //Définissez le numéro de séquence de fin de la valeur du cookie sur la longueur du cookie
};
var cookieStr = unescape(cookies.substring(c_start, c_end)); //Obtenir la valeur du cookie décodée
var cookieObj = cookieStr.split(';'); // Diviser la valeur du cookie
index = ((index == null) ? 0 : index); // Détermine si l'index reçoit une valeur
var goalObj = cookieObj[index]; //tableau d'index
var goalStr = goalObj.split('=');
var getcook = goalStr[1]; //Obtenir la valeur du cookie requise
Retournez getcook ;
};
} autre {
Console.log('La page n'a pas de cookies');
>
};
alert(getCookie('test', 0)); //Imprimer la valeur du cookie de requête

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de reconnaissance vocale en ligne Introduction : Avec le développement continu de la technologie, la technologie de reconnaissance vocale est devenue une partie importante du domaine de l'intelligence artificielle. Le système de reconnaissance vocale en ligne basé sur WebSocket et JavaScript présente les caractéristiques d'une faible latence, d'un temps réel et d'une multiplateforme, et est devenu une solution largement utilisée. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de reconnaissance vocale en ligne.

WebSocket et JavaScript : technologies clés pour réaliser des systèmes de surveillance en temps réel Introduction : Avec le développement rapide de la technologie Internet, les systèmes de surveillance en temps réel ont été largement utilisés dans divers domaines. L'une des technologies clés pour réaliser une surveillance en temps réel est la combinaison de WebSocket et de JavaScript. Cet article présentera l'application de WebSocket et JavaScript dans les systèmes de surveillance en temps réel, donnera des exemples de code et expliquera leurs principes de mise en œuvre en détail. 1. Technologie WebSocket

Introduction à l'utilisation de JavaScript et de WebSocket pour mettre en œuvre un système de commande en ligne en temps réel : avec la popularité d'Internet et les progrès de la technologie, de plus en plus de restaurants ont commencé à proposer des services de commande en ligne. Afin de mettre en œuvre un système de commande en ligne en temps réel, nous pouvons utiliser les technologies JavaScript et WebSocket. WebSocket est un protocole de communication full-duplex basé sur le protocole TCP, qui peut réaliser une communication bidirectionnelle en temps réel entre le client et le serveur. Dans le système de commande en ligne en temps réel, lorsque l'utilisateur sélectionne des plats et passe une commande

Comment utiliser WebSocket et JavaScript pour mettre en œuvre un système de réservation en ligne. À l'ère numérique d'aujourd'hui, de plus en plus d'entreprises et de services doivent fournir des fonctions de réservation en ligne. Il est crucial de mettre en place un système de réservation en ligne efficace et en temps réel. Cet article explique comment utiliser WebSocket et JavaScript pour implémenter un système de réservation en ligne et fournit des exemples de code spécifiques. 1. Qu'est-ce que WebSocket ? WebSocket est une méthode full-duplex sur une seule connexion TCP.

JavaScript et WebSocket : Construire un système efficace de prévisions météorologiques en temps réel Introduction : Aujourd'hui, la précision des prévisions météorologiques revêt une grande importance pour la vie quotidienne et la prise de décision. À mesure que la technologie évolue, nous pouvons fournir des prévisions météorologiques plus précises et plus fiables en obtenant des données météorologiques en temps réel. Dans cet article, nous apprendrons comment utiliser la technologie JavaScript et WebSocket pour créer un système efficace de prévisions météorologiques en temps réel. Cet article démontrera le processus de mise en œuvre à travers des exemples de code spécifiques. Nous

Tutoriel JavaScript : Comment obtenir le code d'état HTTP, des exemples de code spécifiques sont requis Préface : Dans le développement Web, l'interaction des données avec le serveur est souvent impliquée. Lors de la communication avec le serveur, nous devons souvent obtenir le code d'état HTTP renvoyé pour déterminer si l'opération a réussi et effectuer le traitement correspondant en fonction de différents codes d'état. Cet article vous apprendra comment utiliser JavaScript pour obtenir des codes d'état HTTP et fournira quelques exemples de codes pratiques. Utilisation de XMLHttpRequest

Utilisation : En JavaScript, la méthode insertBefore() est utilisée pour insérer un nouveau nœud dans l'arborescence DOM. Cette méthode nécessite deux paramètres : le nouveau nœud à insérer et le nœud de référence (c'est-à-dire le nœud où le nouveau nœud sera inséré).

JavaScript est un langage de programmation largement utilisé dans le développement Web, tandis que WebSocket est un protocole réseau utilisé pour la communication en temps réel. En combinant les puissantes fonctions des deux, nous pouvons créer un système efficace de traitement d’images en temps réel. Cet article présentera comment implémenter ce système à l'aide de JavaScript et WebSocket, et fournira des exemples de code spécifiques. Tout d’abord, nous devons clarifier les exigences et les objectifs du système de traitement d’images en temps réel. Supposons que nous disposions d'un appareil photo capable de collecter des données d'image en temps réel.
