Que es una galleta
"Una cookie es una variable almacenada en la computadora del visitante. Esta cookie se envía cuando la misma computadora solicita una página a través del navegador. Puede usar JavaScript para crear y recuperar el valor de la cookie". - W3School
Una cookie es un archivo creado por un sitio web visitado y se utiliza para almacenar información de navegación, como la información del perfil.
Desde la perspectiva de JavaScript, las cookies son información de cadena. Esta información se almacena en la computadora del cliente y se utiliza para pasar información entre la computadora del cliente y el servidor.
Esta información se puede leer o establecer a través de document.cookie en JavaScript. Dado que las cookies se utilizan principalmente para comunicarse entre el cliente y el servidor, además de JavaScript, el lenguaje del servidor (como PHP) también puede acceder a las cookies.
Conceptos básicos de galletas
Las cookies tienen límites de tamaño. Los datos almacenados en cada cookie no pueden exceder los 4KB. Si la longitud de la cadena de cookies excede 4KB, esta propiedad devolverá una cadena vacía.
Dado que las cookies se almacenan finalmente en la computadora del cliente en forma de archivos, es muy conveniente ver y modificar cookies, por lo que a menudo se dice que las cookies no pueden almacenar información importante.
El formato de cada cookie es el siguiente: <nombre de cookie> = <valor>; Tanto el nombre como el valor deben ser identificadores legales.
Las cookies son válidas para el período de tiempo. Por defecto, el ciclo de vida de una cookie termina cuando se cierra el navegador. Si desea que la cookie pueda usar después de apagar el navegador, debe establecer el período de validez para la cookie, que es la fecha de vencimiento de la cookie.
alerta (typeof document.cookie) El resultado es una cadena. Solía pensar que era una matriz e hice bromas ...
Las cookies tienen el concepto de dominio y camino. El dominio es el concepto de dominio. Debido a que el navegador es un entorno consciente de la seguridad, diferentes dominios no pueden acceder a las cookies entre sí (por supuesto, puede lograr el acceso al dominio cruzado a través de configuraciones especiales). El camino es el concepto de enrutamiento. Las cookies creadas por una página web solo pueden acceder por todas las páginas web en el mismo directorio o subdirectorio que esta página web, pero no se puede acceder por otros directorios (esta oración es un poco confusa, será fácil de entender después de un tiempo).
De hecho, la forma de crear cookies es algo similar a la forma de definir variables, ambas requieren el uso de nombres de cookies y valores de cookies. Se pueden crear varias cookies en el mismo sitio web, y se pueden almacenar varias cookies en el mismo archivo de cookies.
Preguntas frecuentes de galletas
Hay dos tipos de cookies:
Las cookies establecidas por el sitio web actual que está navegando
Cookies de terceros de otras fuentes de dominio, como incrustar anuncios o imágenes en páginas web (el sitio web puede rastrear su información de uso utilizando estas cookies)
El conocimiento básico acaba de mencionar el problema del ciclo de vida de una cookie. De hecho, las cookies se pueden dividir aproximadamente en dos estados:
Cookies temporales. Durante el proceso de uso actual, el sitio web almacenará información personal y la información se eliminará de la computadora después de que se cierre el navegador.
Establece la cookie para el tiempo de vencimiento. Incluso si el navegador está apagado, la industria de la información seguirá en la computadora. Como el nombre de inicio de sesión y la contraseña, no hay necesidad de iniciar sesión cada vez que vaya a un sitio específico. Esta cookie se puede mantener en la computadora durante varios días, meses o incluso años.
Hay dos formas de limpiar las cookies:
Clear cookies a través de herramientas de navegador (hay herramientas de terceros, y el navegador en sí también tiene esta función)
Clear cookies estableciendo el período de validez de las cookies
Nota: Eliminar cookies a veces puede hacer que algunas páginas web no funcionen correctamente
Los navegadores pueden aceptar y negar el acceso a las cookies a través de la configuración.
Por razones funcionales y de rendimiento, se recomienda minimizar el número de cookies utilizadas y usar cookies pequeñas tanto como sea posible.
Los detalles sobre la codificación de cookies se introducirán por separado en el artículo avanzado de cookies.
Si se trata de una página en el disco local, la consola Chrome no puede usar JavaScript para leer y escribir cookies. La solución es ... cambiar un navegador^_^.
Uso básico de cookies
1. Operaciones de acceso simple
Al acceder a las cookies usando JavaScript, debe usar el atributo de cookies del objeto de documento; Una línea de código presenta cómo crear y modificar una cookie:
La copia del código es la siguiente:
document.cookie = 'username = darren';
En el código anterior, 'UserName' representa el nombre de la cookie, y 'Darren' representa el valor correspondiente a este nombre. Suponiendo que el nombre de la cookie no existe, entonces se crea una nueva cookie; Si existe, el valor correspondiente al nombre de la cookie se modifica. Si desea crear cookies varias veces, solo use este método repetidamente.
2. Operación de lectura de galletas
En realidad, es muy simple leer cookies con precisión, que es operar en cadenas. Copie este código en W3School para analizar:
La copia del código es la siguiente:
function getcookie (c_name) {
if (document.cookie.length> 0) {// Primero verifique si la cookie está vacía, si está vacía, devuelve ""
c_start = document.cookie.indexof (c_name + "=") // verifique si esta cookie existe a través de indexOf () del objeto de cadena. Si no existe, es -1
if (c_start! =-1) {
c_start = c_start +c_name.length +1 // El último +1 realmente significa el número "=", de modo que se obtiene la posición de inicio del valor de la cookie
c_end = document.cookie.indexof (";", c_start) // En realidad, cuando vi el segundo parámetro de indexOf (), de repente me mareé un poco mareado. Más tarde, recordé que indica la posición de índice inicial especificada ... esta oración es obtener la posición final del valor. Debido a que es necesario considerar si es el último elemento, se juzga por si el ";" El número existe.
if (c_end ==-1) c_end = document.cookie.length
return unescape (document.cookie.substring (c_start, c_end)) // El valor se obtiene a través de sustring (). Si desea comprender a Unescape (), primero debe saber qué hace Escape (). Todos son conceptos básicos muy importantes. Si quieres saber, puedes buscarlo. Los detalles de la codificación de cookies también se explicarán al final del artículo.
}
}
devolver ""
}
Por supuesto, hay muchas formas de implementar cookies, como matrices, regularidades, etc., por lo que no entraré en detalles aquí.
3. Establezca el período de validez de las cookies
El ciclo de vida de las cookies que a menudo aparecen en los artículos es el período de validez y el período de vencimiento, es decir, el momento en que existen las cookies. Por defecto, las cookies se borrarán automáticamente cuando el navegador esté cerrado, pero podemos establecer el período de validez de las cookies a través de expiras. La sintaxis es la siguiente:
La copia del código es la siguiente:
document.cookie = "name = value; expires = date";
El valor de la fecha en el código anterior es una cadena de tipo de fecha en formato GMT (Greenwich Time), y el método de generación es el siguiente:
La copia del código es la siguiente:
var _date = new Date ();
_Date.SetDate (_Date.getDate ()+30);
_Date.TogMtString ();
Las tres líneas de código anteriores se dividen en varios pasos:
Genere una instancia de fecha a través de nuevo para obtener la hora actual;
El método GetDate () obtiene un día en el mes local actual, y luego agrega 30, lo que significa que espero que esta cookie se pueda guardar localmente durante 30 días;
Luego establezca el tiempo a través del método setDate ();
Finalmente, use el método togMtString () para convertir el objeto de fecha en una cadena y devuelva el resultado
La siguiente función completa ilustra los puntos a los que debemos prestar atención al crear cookies. Cree una función que almacene información en una cookie:
La copia del código es la siguiente:
función setcookie (c_name, valor, expirado) {
var exDate = new Date ();
exDate.SetDate (exDate.getDate () + expiredays);
document.cookie = c_name + "=" + escape (valor) + ((expiredays == null)? "": "; expires =" + exDate.TogmtString ());
}
// Método de uso: Setcookie ('Nombre de usuario', 'Darren', 30)
Ahora nuestra función establece el tiempo válido de la cookie de acuerdo con el número de días. Si desea configurarlo en otras unidades (como: Hours), cambie la tercera línea de código:
La copia del código es la siguiente:
exdate.sethours (exDate.gethours () + expiredays);
De esta manera, el período de validez de las cookies se basará en horas.
Hay dos formas de limpiar las cookies en las preguntas frecuentes. Ahora queremos decir que las cookies se invalidan al establecer el período de validez en un tiempo vencido. Dado que hay un método para establecer la fecha de vencimiento, solicite a los amigos interesados que lo hagan usted mismo^_^. Continuemos con el tema de cookie más profundo a continuación.
Cookies avanzada
One.cookie ruta concepto
En lo básico, se menciona el concepto de cookies que tiene dominios y caminos. Ahora presentemos el papel de los caminos en las cookies.
Las cookies generalmente se crean porque los usuarios acceden a la página, pero esta cookie no es accesible solo en la página donde se crea la cookie.
Por defecto, solo se puede acceder a las páginas web en el mismo directorio o subdirectorio que la página que creó la cookie. Esto se debe a consideraciones de seguridad, no todas las páginas pueden acceder a cookies creadas por otras páginas a voluntad. Por ejemplo:
Cree una cookie en la página "//www.vevb.com/darren_code/", luego la página en la ruta "/darren_code/" como: "//www.vevb.com/darren_code/archive/2011/11/07/cookie.html" puede obtener información de cookie por defecto.
Por defecto, "//www.vevb.com" o "//www.vevb.com/xxxx/" no puede acceder a esta cookie (es inútil solo mirarla, practique la verdad^_^).
Entonces, cómo hacer que esta cookie sea accesible para otros directorios o directorios de padres, puede lograrla estableciendo la ruta de la cookie. Los ejemplos son los siguientes:
La copia del código es la siguiente:
document.cookie = "name = valor; ruta = ruta"
document.cookie = "name = value; expires = date; ruta = ruta"
La ruta de fuente roja es el camino de la galleta. El ejemplo más común es dejar que la cookie esté en el directorio, de modo que, sin importar a qué subpágina se cree, se puede acceder a todas las páginas:
La copia del código es la siguiente:
document.cookie = "name = darren; path =/";
Dos. Concepto de dominio delcookie
La ruta puede resolver el problema de acceder a las cookies bajo el mismo dominio. Sigamos hablando sobre el problema de acceder a las cookies entre el mismo dominio. La sintaxis es la siguiente:
La copia del código es la siguiente:
document.cookie = "name = value; path = path; domain = dominio";
El dominio rojo es el valor del conjunto de campo de cookies.
Por ejemplo, "www.qq.com" y "sports.qq.com" comparten un nombre de dominio relacionado "qq.com". Si queremos que la cookie en "Sports.qq.com" sea accedida por "www.qq.com", necesitamos usar el atributo de dominio de la cookie y establecer el atributo de ruta en "/". ejemplo:
La copia del código es la siguiente:
document.cookie = "username = darren; path =/;; domain = qq.com";
Nota: Definitivamente es acceso entre el mismo dominio, y el valor del dominio no se puede establecer en un nombre de dominio que no sea el dominio principal.
Tres.
Por lo general, la información de las cookies se utiliza para pasar datos utilizando conexiones HTTP. Este método de entrega es fácil de ver, por lo que la información almacenada en las cookies es fácilmente robada. Si el contenido entregado en la cookie es más importante, entonces se requiere transmisión de datos cifrado.
Por lo tanto, el nombre de este atributo de la cookie es "seguro", y el valor predeterminado está vacío. Si el atributo de una cookie es seguro, entonces los datos se transmiten entre TI y el servidor a través de HTTPS u otros protocolos de seguridad. La sintaxis es la siguiente:
La copia del código es la siguiente:
document.cookie = "username = darren; seguro"
Establecer cookies para asegurar solo garantiza que el proceso de transmisión de datos entre las cookies y el servidor esté encriptado, mientras que el archivo de cookies almacenado localmente no está encriptado. Si desea encriptar cookies locales, debe cifrar sus datos usted mismo.
Nota: Incluso si se establece el atributo seguro, no significa que otros no puedan ver la información de las cookies guardada localmente en su máquina, por lo que después de todo, no ponga información importante sobre las cookies, ...
Detalles de codificación de cuatro.cookie
Originalmente quería presentar el conocimiento de la codificación de cookies en la sección de preguntas frecuentes, porque si no entiendo esto, el problema de codificación es de hecho una trampa, por lo que hablaré sobre ello en detalle.
Al ingresar la información de las cookies, no puede incluir símbolos especiales como espacios, semicolones, comas, etc., y en general, el almacenamiento de la información de las cookies está de manera no codificada. Por lo tanto, antes de configurar la información de cookies, primero debe usar la función Escape () para codificar la información del valor de la cookie, y cuando obtenga el valor de la cookie, use la función Unescape () para convertir el valor de nuevo. Si establece cookies:
La copia del código es la siguiente:
document.cookie = name + "=" + Escape (valor);
Echemos un vistazo a la oración en Getcookie () mencionado en el uso básico:
La copia del código es la siguiente:
return unescape (document.cookie.substring (c_start, c_end));
De esta manera, no tiene que preocuparse por el error de información de cookies porque aparece un símbolo especial en el valor de la cookie.
Código personal
La copia del código es la siguiente:
/*Establecer cookies*/
función setcookie (c_name, valor, expiredays, ruta, dominio, seguro) {
var exDate = new Date (); // Obtenga la hora actual
exDate.SetDate (exDate.getDate () + expirado); // Tiempo de vencimiento
document.cookie = c_name + "=" + // nombre de cookie
Escape (valor) + // codificando el valor de la cookie
((expiredays == null)? "": "; expires =" + exDate.TogmtString ()) + // Establecer tiempo de vencimiento
((ruta == nulo)? '/': '; ruta =' + ruta) + // Establecer la ruta de acceso
((Domain == NULL)? '': '; Domain =' + dominio) + // Establezca el dominio de acceso
((seguro == nulo)? '': '; secure =' + Secure); // establece si cifrar o no
};
setcookie ('test', 'name = sheng; sexy = hombres; lancer = splockbear', 30);
setcookie ('bb', 'name = sheng; sexy = hombres', 30);
/*Consigue galletas*/
function getCookie (c_name, index) {
var cookies = document.cookie; // Obtener valor de cookie
var cookielen = cookies.length; // Obtener la longitud de las galletas
if (Cookielen> 0) {// Cuando la galleta no está vacía
var c_start = cookies.indexof (c_name + '='); // Encuentra el número de serie requerido para el valor de la cookie en la cookie
if (c_start> -1) {// Cuando existe el valor de la cookie
c_start + = c_name.length + 1; // Obtener el número de secuencia de inicio del valor de las cookies
var c_end = cookies.indexof (';', c_start); // Obtenga el número de secuencia final del valor de las cookies
if (c_end == -1) {// Cuando la cookie es la última
c_end = Cookielen; // Establezca el número de secuencia final del valor de la cookie en la longitud de la cookie
};
var cookiestr = unescape (cookies.substring (c_start, c_end)); // Obtener el valor de cookie decodificado
var cookieObj = CookISTR.Split (';'); // Valor de cookie dividido
index = ((index == null)? 0: índice); // juzga si el índice se pasa a un valor
var goToBJ = CookieBj [índice]; // matriz de índice
var objetivo de metal = goutobj.split ('=');
var getcook = GoalTR [1]; // Obtener el valor de las cookies que debe obtenerse
regresar getcook;
};
} demás {
console.log ('La página no tiene cookies');
}
};
alerta (GetCookie ('Test', 0)); // valor de cookie de consulta de impresión