1. Qu'est-ce qu'un cookie?
R: Les cookies sont utilisés pour stocker les informations de session sur le client.
2. Composants des cookies?
① Nom: un nom unique pour un cookie. Il est recommandé d'être sensible à la casse. Le nom du cookie doit être encodé d'URL.
② Valeur: la valeur de chaîne stockée dans le cookie. La valeur doit être codée par URL.
③Domain: À quel domaine est un cookie valide. Toutes les demandes envoyées à ce domaine contiendront ces informations sur les cookies. Cette valeur peut contenir un sous-domaine (sous-domaine, tel que www.wrox.com) ou non (sous-domaine, tel que .wrox.com, qui est valide pour tous les sous-domaines de Wrox.com). S'il n'est pas explicitement défini, ce domaine sera pris en compte dans le domaine où le cookie est défini.
④Path: Pour ce chemin dans le domaine spécifié, un cookie doit être envoyé au serveur. Par exemple, vous pouvez spécifier que les cookies sont accessibles uniquement à partir de http://www.wrox.com/books/, de sorte que la page http://www.wrox.com n'enverra pas d'informations sur les cookies, même si les demandes proviennent du même domaine.
⑤ Temps d'expiration: horodatage indiquant quand le cookie doit être supprimé. Par défaut, tous les cookies seront supprimés à la fin de la session du navigateur; Cependant, vous pouvez également définir le temps de suppression vous-même. Cette valeur est une date au format GMT (WDY, DD-MON-YYY HH: MM: SS GMT), qui spécifie l'heure exacte où le cookie doit être supprimé. Par conséquent, les cookies
Il peut toujours être enregistré sur la machine de l'utilisateur après la fermeture du navigateur. Si la date d'expiration que vous définissez est une heure précédente, le cookie sera supprimé immédiatement.
⑥ Indicateur de sécurité: Après avoir spécifié, le cookie est envoyé au serveur uniquement lors de l'utilisation de la connexion SSL. Par exemple, les informations sur les cookies ne peuvent être envoyées qu'à https://www.wrox.com, tandis que les demandes de http://www.wrox.com ne peuvent pas envoyer de cookies.
3. Énumérez un exemple de cookie?
Voici un exemple complet de cookies que nous allons le décomposer:
Set-cookie: name = valeur; expire = lun, 22-jan-07 07:10:24 GMT; domain = .wrox.com; chemin = /; sécurisé
① Nom: Nom String Représentation
② Valeur: Représentation de la chaîne de valeur
③ Temps d'expiration: lun, 22-jan-07 07:10:24 GMT
④Domain Nom: .wrox.com
⑤Path: répertoire actuel /
⑥ Signe de sécurité: sécurisé
4. Comment faire fonctionner les cookies?
var cookieUtil = {// set cookie set: function (nom, valeur, expire, domaine, chemin, sécurisé) {var CookieText = ""; CookieText + = EncodeuRIComponent (nom) + "=" + EncodeuRIComponent (valeur); if (expire instanceof date) {CookieText + = "; exires =" + exires.togmTString (); } if (path) {CookieText + = "; path =" + path; } if (domaine) {CookieText + = "; domaine =" + domaine; } if (sécurisé) {CookieText + = "; sécurisé"; } document.cookie = CookieText; }, // name = valeur; expires = expiration_time; path = domain_path; domain = domain_name; Secure // Get Cookie Get: Function (Name) {var Cookiename = EncodeuRIComponent (Name) + "=", Cookiestart = document.cookie.indexof (Cookiename), Cookievalue = ""; if (Cookiestart> -1) {var cookieend = document.cookie.indexof (";;", Cookiestart); if (cookieend = -1) {cookieend = document.cookie.length; } CookieValue = DecodeuriComponent (document.cookie.substring (Cookiestart + Cookiename.length, cookieend)); } retourner Cookievalue; }, // supprimer un cookie unset: function (nom, domaine, chemin, sécurisé) {this.set (nom, "", date (0), domaine, chemin, sécurisé); }}; // tester cookieutil.set ("nom", "zhang"); var name = cookieUtil.get ("name"); alerte (nom); // zhang cookieutil.unset ("nom"); alert (cookieUtil.get ("nom")); // vide5.Cookie Restrictions
① Le nombre de données stockées est limitée
② Les informations stockées dans le cookie ne sont accessibles que par les destinataires approuvés, mais ne sont pas accessibles par d'autres domaines.
Sécurité limitée
6. En réponse au problème d'une petite quantité de stockage de données de cookies, nous avons proposé le concept de sous-cookies. Autrement dit, plusieurs éléments de données sont stockés dans la valeur de chaque cookie, séparés par "&".
var subcookieutil = {/ ** Définir un cookie complet * Nom du param: indique le nom du cookie, requis * Param Subbookies: indique la valeur du cookie, pour un objet, requis * Param expire: indique le temps d'expiration du cookie, vous ne pouvez pas remplir le domaine * Param: indique le nom de cookie, vous ne pouvez pas remplir * param : indique le drapeau de sécurité du cookie, vous ne pouvez pas remplir * par exemple: subcookieutil.setall ("info", {nom: "zhang", âge: 23}); ** / setall: fonction (nom, sous-cœuds, expire, domaine, chemin, sécurisé) {var CookieText = "", subname, cookieParts = []; CookieText + = EncodeuRIComponent (nom) + "="; for (subname in subcookies) {cookieParts.push (encodeuriComponent (subname) + "=" + EncodeuRIComponent (subcookies [subname])); } if (cookieParts.length> 0) {CookieText + = cookieParts.join ("&"); if (expire instanceof date) {CookieText + = "; exires =" + exires.togmTString (); } if (path) {CookieText + = "; path =" + path; } if (domaine) {CookieText + = "; domaine =" + domaine; } if (sécurisé) {CookieText + = "; sécurisé"; }} else {CookieText + = "; Expires =" + Date (0) .togMtString (); } document.cookie = CookieText; }, / ** Définir un sous-cookie * Nom de param: indique le nom du cookie, requis * Param Subname: indique le nom du cookie de l'enfant, obligatoire * Valeur de param remplir * Param Secure: indique le drapeau de sécurité du cookie, vous ne pouvez pas remplir * par exemple: subcookieutil.set ("info", "sexe", "boy"); ** / set: function (nom, subname, valeur, expire, domaine, chemin, sécurisé) {var cookies = this.getall (name) || {}; cookies [subname] = valeur; this.setall (nom, cookies, expire, domaine, chemin, sécurisé); }, / ** Lire un cookie complet * Nom de param: indique le nom du cookie, requis * retour: un objet cookie * par exemple: subcookieutil.getall ("info"); ** / getAll: function (name) {var cookiename = encodeuRICPonent (name) + "=", Cookiestart = document.cookie.indexof (CookIeName), CookieValue = "", i, len, subcookies, parties, result = {}; if (Cookiestart> -1) {var cookieend = document.cookie.indexof (";;", Cookiestart); if (cookieend == -1) {cookieend = document.cookie.length; } CookieValue = DecodeuriComponent (document.cookie.substring (Cookiestart + Cookiename.length, cookieend)); if (CookieValue.Length> 0) {subcookies = Cookievalue.split ("&"); for (i = 0, len = subcookies.length; i <len; i ++) {parties = subcookies [i] .split ("="); résultat [decodeuriComponent (parties [0])] = decodeuriComponent (parties [1]); } Retour Résultat; }} return null; }, / ** Obtenez la valeur d'un cookie enfant * Nom de param: représente le nom du cookie, requis * Param Subname: représente le nom de l'enfant Cookie * Return: La valeur d'un cookie enfant * par exemple: subcookieutil.get ("info", "nom"); ** / get: function (name, subname) {var cookies = this.getall (name); if (cookies) {return cookies [subname]; } else {return null; }}, / ** Supprimer un cookie complet * Nom de param: indique le nom du cookie, requis * Domaine Param: indique le nom de domaine du cookie, vous ne pouvez pas remplir * PATH PATH: indique le chemin du Cookie, vous ne pouvez pas remplir * Param Secure: indique le drapeau de sécurité du cookie, "Info"); ** / Unsetall: function (nom, domaine, chemin, sécurisé) {this.setall (nom, "", date (0) .togMtString (), domaine, chemin, sécurisé); }, /** Delete a subcookie * param name : indicates the name of the cookie, required * param subName : indicates the name of the child cookie, required * param domain : indicates the domain name of the cookie, you can not fill in * param path : indicates the path of the cookie, you can not fill in * param secure : indicates the security flag of the cookie, you can not fill in * eg : Subcookieutil.unset ("info", "nom"); ** / unset: fonction (nom, subname, domaine, chemin, sécurisé) {var cookies = this.getall (name); if (cookies) {supprimer des cookies [subname]; this.setall (nom, cookies, null, domaine, chemin, sécurisé); }}}}; // Test: var zhang = {nom: "Zhang", âge: 23, hauteur: "178cm", poids: "66kg"} // définit un cookie complet subcookieutil.setall ("zhang", zhang); // Obtenez un cookie complet var zhang = subcookieutil.getall ("zhang"); alerte (Zhang.weight); // 66kg // Ajouter un cookie enfant au Zhang Subcookieutil.set ("Zhang", "Sport", "Basketball"); // Obtenez une alerte Subcookie (subcookieutil.get ("Zhang", "Sport")); // Basketball // Supprimer un Subcookie Subcookieutil.unset ("Zhang", "Age"); alert (subcookieutil.get ("zhang", "âge")); // Undefined // Supprimer un cookie complet subcookieutil.unsetall ("zhang"); alert (subcookieutil.getall ("zhang")); // Une erreur a été suppriméeCe qui précède concerne cet article, j'espère qu'il sera utile à l'apprentissage de tout le monde.