1. ¿Qué es una galleta?
R: Las cookies se utilizan para almacenar información de sesión en el cliente.
2. ¿Componentes de las cookies?
① Nombre: un nombre único para una cookie. Se recomienda que sea sensible a la caja. El nombre de la cookie debe estar codificado por URL.
② Valor: el valor de la cadena almacenado en la cookie. El valor debe estar codificado por URL.
③ Domain: para qué dominio es válido Cookie. Todas las solicitudes enviadas a este dominio contendrán esta información de cookies. Este valor puede contener subdominio (subdominio, como www.wrox.com) o no (subdominio, como .wrox.com, que es válido para todos los subdominios de wrox.com). Si no se establece explícitamente, entonces este dominio se considerará desde el dominio donde se establece la cookie.
④Path: para esa ruta en el dominio especificado, se debe enviar una cookie al servidor. Por ejemplo, puede especificar que las cookies solo se pueden acceder desde http://www.wrox.com/books/, por lo que la página http://www.wrox.com no enviará información de cookies, incluso si las solicitudes son del mismo dominio.
⑤ Tiempo de extracción: marca de tiempo que indica cuándo se debe eliminar la cookie. Por defecto, todas las cookies se eliminarán al final de la sesión del navegador; Sin embargo, también puede establecer el tiempo de eliminación usted mismo. Este valor es una fecha en formato GMT (WDY, DD-Mon-Yyy HH: MM: SS GMT), que especifica el momento exacto en que la cookie debe eliminarse. Por lo tanto, cookies
Todavía se puede guardar en la máquina del usuario después de que se cierre el navegador. Si la fecha de vencimiento que establece es una vez anterior, la cookie se eliminará de inmediato.
⑥ Bandera de seguridad: después de especificar, la cookie se envía al servidor solo cuando se usa la conexión SSL. Por ejemplo, la información de las cookies solo se puede enviar a https://www.wrox.com, mientras que las solicitudes de http://www.wrox.com no pueden enviar cookies.
3. Enumere un ejemplo de una cookie?
Aquí hay un ejemplo completo de cookies de que lo desglosaremos:
Set-cookie: name = value; caduca = lun, 22-enero-07 07:10:24 GMT; dominio = .wrox.com; ruta =/; seguro
① Nombre: Representación de cadenas de nombre
② Valor: representación de cadena de valor
③ Tiempo de expiración: lunes, 22-jan-07 07:10:24 GMT
④ Nombre del dominio: .wrox.com
⑤Path: directorio actual/
⑥ Señal de seguridad: seguro
4. ¿Cómo operar cookies?
var cookieUtil = {// set cookie set: function (nombre, valor, expira, dominio, ruta, seguro) {var Cookietext = ""; Cookietext + = EncodeuricOponent (nombre) + "=" + Encodeuricomponent (valor); if (expirate instanceOf date) {Cookietext + = "; expires =" + expires.togmtString (); } if (ruta) {Cookietext + = "; Path =" + Path; } if (dominio) {Cookietext + = "; Domain =" + Domain; } if (seguro) {Cookietext += "; Secure"; } document.cookie = Cookietext; }, // name = value; expires = expiration_time; ruta = Domain_path; dominio = dominio_name; seguro // get cookie get: function (name) {var Cookiename = Encodeuricomponent (name) + "=", CookeStart = document.cookie.indexof (Cookiename), Cookievalue = ""; if (CookeStart> -1) {var cookieend = document.cookie.indexof (";", CookeStart); if (cookieend = -1) {cookieend = document.cookie.length; } Cookievalue = DecodeuriComponent (document.cookie.substring (CookeStart + Cookiename.length, Cookieend)); } regreso de cookievalue; }, // Eliminar cookie unset: function (nombre, dominio, ruta, seguro) {this.set (nombre, "", fecha (0), dominio, ruta, seguro); }}; // prueba cookieUtil.set ("nombre", "zhang"); var name = cookieUtil.get ("nombre"); alerta (nombre); // zhang cookieUtil.unset ("nombre"); alerta (cookieUtil.get ("nombre")); // vacío5. Restricciones de los gritos
① El número de datos almacenados es limitado
② La información almacenada en la cookie solo puede ser accedida por destinatarios aprobados, pero no puede acceder a otros dominios.
③ Securencia limitada
6. En respuesta al problema de una pequeña cantidad de almacenamiento de datos de cookies, hemos propuesto el concepto de subcokies. Es decir, se almacenan múltiples datos en el valor de cada cookie, separados por "&".
var subcookieUtil = { /** Establezca una cookie completa * Nombre de parámetro: indica el nombre de la cookie, requerido * param subcookies: indica el valor de la cookie, para un objeto, requerido * Param expira: indica el tiempo de vencimiento de la cookie, no puede llenar * param dominio: indica el nombre de dominio de la cookie de la cookie, no puede llenar la ruta de parámetro: indica la ruta de la cookie de param: no puede rellenar el nombre de dominio. Indica la bandera de seguridad de la cookie, no puede completar * Eg: subcookieUtil.setall ("info", {nombre: "zhang", edad: 23}); **/ setall: function (nombre, subcookies, expiras, dominio, ruta, seguro) {var Cookietext = "", subname, cookieParts = []; Cookietext + = EncodeuricOponent (nombre) + "="; for (subname en subcookies) {cookieParts.push (encodeUriComponent (subname) + "=" + encodeuricOpond (subcookies [subname])); } if (cookieParts.length> 0) {Cookietext += CookieParts.Join ("&"); if (expirate instanceOf date) {Cookietext + = "; expires =" + expires.togmtString (); } if (ruta) {Cookietext + = "; Path =" + Path; } if (dominio) {Cookietext + = "; Domain =" + Domain; } if (seguro) {Cookietext += "; Secure"; }} else {Cookietext + = "; expires =" + date (0) .TogmtString (); } document.cookie = Cookietext; }, /** Establezca un subcookie * parámetro nombre: indica el nombre de la cookie, requerido * param subname: indica el nombre de la cookie infantil, requerido * Valor de parámetro: indica el valor de la cookie infantil, requerido * Param expira: indica el tiempo de expiración de la cookie, no puede rellenar * el dominio de parámetro: indica el nombre de dominio de la cookie de la cookie, no puede rellenar * ruta: indica la ruta de parámet En * Param Secure: indica la bandera de seguridad de la cookie, no puede completar * Ej. **/ set: function (nombre, subname, valor, expirado, dominio, ruta, seguro) {var cookies = this.getall (nombre) || {}; cookies [subname] = valor; this.setall (nombre, cookies, expiras, dominio, ruta, seguro); }, /** Lea una cookie completa * Nombre de parámetro: indica el nombre de la cookie, requerido * return: un objeto de cookie * EG: subcookieUtil.getAll ("info"); **/ getAll: function (name) {var Cookiename = EncodeRiComponent (name) + "=", CookeStart = document.cookie.indexof (Cookiename), Cookievalue = "", i, len, subcookies, piezas, resultado = {}; if (CookeStart> -1) {var cookieend = document.cookie.indexof (";", CookeStart); if (cookieend == -1) {cookieend = document.cookie.length; } Cookievalue = DecodeuriComponent (document.cookie.substring (CookeStart + Cookiename.length, Cookieend)); if (cookievalue.length> 0) {subcookies = cookievalue.split ("&"); para (i = 0, len = subcookies.length; i <len; i ++) {partes = subcookies [i] .split ("="); Result [decodeuricponent (partes [0])] = decodeuricomponent (partes [1]); } resultado de retorno; }} return null; }, /** Obtenga el valor de una cookie infantil* Nombre de parámetro: Representa el nombre de la cookie, requerido* Param Subname: Representa el nombre de la cookie infantil* Return: El valor de una cookie infantil* por ejemplo: subcookieUtil.get ("info", "nombre"); **/ get: function (name, subname) {var cookies = this.getall (nombre); if (cookies) {return cookies [subname]; } else {return null; }}, /** Eliminar una cookie completa * Nombre de parámetro: indica el nombre de la cookie, requerido * param dominio: indica el nombre de dominio de la cookie, no puede completar la ruta * param: indica la ruta de la cookie, no puede completar * parámetro seguro: indica el indicador de seguridad, no puede completar * eg: subcookieutil.unsetall ("información"); **/ unsetall: function (nombre, dominio, ruta, seguro) {this.setall (nombre, "", date (0) .TogmtString (), dominio, ruta, seguro); }, /** Eliminar un subcookie * Nombre de parámetro: indica el nombre de la cookie, requerido * Param Subname: Indica el nombre de la cookie infantil, requerido * Dominio de parámetro: indica el nombre de dominio de la cookie, no puede completar * Eg ruta: indica la ruta de la cookie, no puede completar * param: indica la bandera de seguridad de la cookie, no puede completar * Eg: indica: Subcookieutil.unset ("info", "nombre"); **/ unset: function (nombre, subname, dominio, ruta, seguro) {var cookies = this.getall (nombre); if (cookies) {eliminar cookies [subname]; this.setall (nombre, cookies, nulo, dominio, ruta, seguro); }}}}; // prueba: var zhang = {nombre: "zhang", edad: 23, altura: "178cm", peso: "66kg"} // establece un subcookieutil de cookie completo ("zhang", zhang); // Obtenga una cookie completa var zhang = subcookieUtil.getall ("zhang"); alerta (zhang.weight); // 66kg // Agregue una galleta infantil al SubcookieUtil.set de Zhang ("Zhang", "Sport", "Basketball"); // Obtener alerta Subcookie (SubcookieUtil.get ("Zhang", "Sport")); // baloncesto // eliminar un subcookie subcookieutil.unset ("zhang", "edad"); alerta (subcookieutil.get ("zhang", "edad")); // Undefined // Eliminar una cookie completa subcookieutil.unsetall ("zhang"); alerta (subcookieUtil.getall ("zhang")); // se ha eliminado un errorLo anterior se trata de este artículo, espero que sea útil para el aprendizaje de todos.