• HTML
  • CSS
  • JS

    Nivel 1 JS

    Propiedades

Cookies

Su descripción es realmente muy simple, ya que estas se pueden definir como archivos que son generados por las páginas web, los cuales se almacenan en el navegador del usuario y se pueden emplear para multitud de usos; pero en términos generales se suelen emplear para registrar la actividad del usuario, como sus gustos, configuraciones de la página, búsquedas, etc.

Tipos de Cookies

Exceptuadas

  • Cookies de entrada de usuario

  • Cookies de identificación o autenticación del usuario (Únicamente de sesión)

  • Cookies de seguridad del usuario

  • Cookies del reproductor multimedia

  • Cookies de sesión para equilibrar la carga

  • Cookies de personalización de la interfaz de usuario

  • Cookies de complemento (plug-in) para intercambiar contenidos sociales

No Exceptuadas

  • El resto de cookies

Cookies Según la Entidad que las Gestiona

  • Cookies Propias: Son aquellas que se envían al equipo terminal del usuario desde un equipo o dominio gestionado por el propio editor y desde el que se presta el servicio solicitado por el usuario.

  • Cookies de Terceros: Son aquellas que se envían al equipo terminal del usuario desde un equipo o dominio que no es gestionado por el editor, sino por otra entidad que trata los datos obtenidos a través de las cookies.

Cookies Según su Finalidad

  • Cookies de análisis: Son aquellas que al ser bien tratadas por el titular del sitio, o por un tercero, permiten cuantificar el número de usuarios y así realizar la medición y análisis estadístico de la utilización que hacen los usuarios del servicio ofertado.

    Para ello, se analiza su navegación en la página web, con el fin de mejorar la oferta de productos o servicios ofertados.

  • Cookies Publicitarias: Son aquellas que permiten la gestión, de la forma más eficaz posible, de los espacios publicitarios que, en su caso, el editor haya incluido en una página web, aplicación o plataforma desde la que presta el servicio solicitado en base a criterios como el contenido editado o la frecuencia en la que se muestran los anuncios.

  • Cookies Sociales: Son necesarias para las redes sociales externas (Facebook, Google, Twitter, Pinterest, Instagram, etc.); su función es controlar la interacción con los "widgets" sociales dentro de la página.

  • Cookies de Publicidad Comportamental: Son aquellas que permiten la gestión, de la forma más eficaz posible, de los espacios publicitarios que, en su caso, el editor haya incluido en la página web, aplicación o plataforma desde la que presta el servicio solicitado. Estas cookies almacenan información del comportamiento de usuarios obtenida a través de la observación continuada de sus hábitos de navegación, lo que permite desarrollar un perfil específico para mostrar publicidad en función del mismo.

    También es posible que al visitar alguna página web o al abrir algún email donde se publique algún anuncio o alguna promoción sobre determinados productos o servicios se instale en el navegador alguna cookie que se utiliza posteriormente para mostrar publicidad relacionada con la búsqueda que se haya realizado, para realizar un control de los anuncios en relación, por ejemplo, con el número de veces que son vistos, dónde aparecen, a qué hora se ven, etc.

Implementación

Las cookies en sí se tratan de elementos con una estructura "nombre/valor/parámetros", de la cual los únicos datos indispensables se tratan del nombre y el valor, en contraposición a los parámetros, los cuales son de carácter opcional.

Las cookies se declaran utilizando el objeto "document" con el método ".cookie", seguido de la cadena "nombre=valor" que conformará la cookie, de la siguiente forma:

Código

De este modo, las cookies son generadas y almacenadas en el navegador; para visualizarlas se emplean las "herramientas de desarrollador", específicamente la pestaña de "Application" en la sección de "cookies", como se puede apreciar a continuación:

Resultado

Nota: Cada una de las columnas que conforman la tabla en la que se visualizan las cookies corresponden a un atributo que puede ser asignado a estas.

Otro posible uso del método ".cookie" se aplica en los casos en los que este es declarado sin datos que registrar; de este modo, el método permite obtener todas las cookies que se encuentren almacenadas en el navegador.

Ejemplo

Nota: Tener presente el hecho de que al emplearse el método de esta forma, se añadirá un ";" para separar cada una de las cookies.

Atributos

Una particularidad de las cookies se trata de que los atributos de estas no son trabajados desde el front-end; por lo tanto, si bien sí pueden ser declarados desde allí, una vez hecho esto no se podrá manipular ninguno de estos desde un lugar que no sea el back-end. Por lo tanto, a los únicos datos de las cookies a los que se tiene pleno acceso desde el front-end se tratan del "name" y del "value".

Para declarar los atributos de una cookie se mantiene el formato de "nombre/valor"; por lo tanto se iguala el respectivo nombre del atributo al valor que poseerá este, sin olvidar que cada atributo se debe separar con punto y coma, tal como se puede apreciar a continuación:

Ejemplo

De esta forma es como se observa una cookie, la cual para este ejemplo posee tres atributos básicos, los cuales son el "name", la "expiración" y la "ubicación (path)".

Nota: La sesión de las cookies, de no ser declarada, se mantiene activa hasta que se cierre la sesión actual de la página.

Una característica de las cookies radica en que estas tienen un límite de peso que pueden soportar, el cual es de 4kb, mientras que "sessionStorage" o "localStorage" poseen un límite de 5MB; sin embargo, las cookies cuentan con la ventaja de que estas son mucho más rápidas de ejecutar por el navegador.

Ejemplo de una función que obtiene el valor de una cookie

Como ya se mencionó, esta función permite obtener el valor del campo "value" de una cookie; es decir, permite obtener el valor vinculado al nombre de cada registro. El flujo de esta función descrito a continuación sería:

  1. Lo primero es utilizar el método "document.cookie" para obtener todas las cookies declaradas hasta el momento y se almacenan en la variable cookies.

    Nota: Recordar que la forma en la que este método retorna las cookies es en la de una única cadena de texto, con cada uno de los valores separados por punto y coma (;).

  2. Luego se utiliza el método ".split" con el valor (;), método que permite porcionar una cadena de texto y retornar sus partes en un array. Para determinar dónde se separará la cadena de texto se utiliza el símbolo definido en este método.

    Por lo tanto, en este paso se utiliza el método ".split" para separar cada valor y almacenarlo en los campos del array, esto cada vez que se encuentre un (;).

  3. Seguido a esto se utiliza un ciclo "for" para recorrer el array aplicando el método ".trim", el cual permite eliminar los caracteres de espacio en blanco (" ") que en ocasiones se pueden añadir a las secciones de las cadenas de texto en las que se aplica el método "split"; ya que estos caracteres causarían errores en el código, es necesario eliminarlos.

  4. Ya terminando, se aplica un condicional "if" para determinar si el nombre de alguna de las cookies inicia con los mismos caracteres que los datos proveídos por el usuario; para esto se usa el método ".startsWith".

  5. Una vez se han obtenido todas las cookies y se han almacenado adecuadamente, así como también se ha validado que estas coincidan con los datos ingresados por el usuario, se obtiene el valor de la cookie.

    Ya que en este punto las cookies están conformadas por cadenas de texto "nombre=valor", se procede a aplicar por segunda vez el método ".split", pero esta vez se define el símbolo "=", y se define el segundo índice del array.

    En otras palabras, lo que ocurre es que al aplicar el método ".split" en las cadenas "nombre=valor", el valor es almacenado en el segundo índice del array, el cual es llamado al indicar "[1]", con el fin de ser retornado por la función.

Modificar una Cookie

Realmente las cookies en sí no son modificadas; en su lugar son reescritas o declaradas nuevamente. Por lo tanto, lo único necesario para modificar el valor de la cookie es declararla pero con el nuevo valor luego del símbolo "=".

Original

Modificación

Final

Eliminar Una Cookie Desde el Frontend

Como se ha mencionado anteriormente, los atributos de las cookies no se pueden modificar desde el front-end; sin embargo, existe una manera de eliminar las cookies desde este.

Este truco realmente es muy simple: se basa en declarar la cookie como si se desease modificarla, pero en este caso lo que se hará es: luego de la cadena "nombre=valor" se añade un punto y coma (;), seguido a este se ingresa "max-age=0", es decir, el tiempo de vigencia de la cookie.

De este modo, al aplicarse la modificación se interpreta el nuevo valor del atributo "max-age", el cual al estar definido en cero "0" resulta en que la cookie en cuestión se elimine debido a que se considera expirada.

Original

Modificación

Nota: Ya que una de las aplicaciones de las cookies radica en recopilar datos del usuario, la temática de la privacidad es muy relevante en estas; por ello, en caso de necesitar desarrollar o aplicar una de estas cookies, lo más recomendable es investigar sobre el cumplimiento del "RGPD y las leyes de privacidad".

Contacto

¿Quién soy?

Mi nombre es Carlos Miguel Puche Moreno, estoy estudiando programación web de forma autodidacta. Si quieres saber más, visita mi perfil de GitHub haciendo clic en mi fotografía, o visita mis redes sociales:

Redes

Currículum