Cookieless

Última revisión: 12 de diciembre de 2021

Eliminar cookies innecesarias

Como cada vez que se hace una petición se han de enviar todas las cookies de nuevo, está claro que lo mejor es utilizar cuanta menos información en las cookies sea posible. Es por esto que, si las utilizamos, debemos cuidar la cantidad de información que guardamos.

En muchos casos es probable que según vaya pasando el tiempo el usuario interactúe cada vez más con nuestro sitio y de ahí que vayamos guardando más información en las cookies, por lo que es muy razonable tener un sistema que, cada cierto tiempo, vaya eliminando aquella información que no sea absolutamente necesaria para trabajar.

Reducir el tamaño de las cookies

Aunque en muchas ocasiones no podremos eliminar información de las cookies, sí que podemos hacer que estas ocupen menos de lo que lo hacen. Para ello, usaremos las cookies como si fueran un identificador de sesión.

El hecho de que la información se tenga que enviar y recibir cada vez puede generar una ralentización del sitio, por lo que no es nada descartable el poder guardar simplemente un identificador y que la información quede almacenada en el propio servidor web, en la base de datos…

De esta forma conseguiremos que la cookie simplemente sea un número o una pequeña combinación de letras y números que no signifiquen nada (y así también aumentar la privacidad), de forma que sólo se envíen unos pocos bytes en cada petición.

Aplicar las cookies al nivel necesario

Por cómo funcionan las cookies hay que tener muy en cuenta cómo se utilizan en cuanto a sus limitaciones. Es por eso que normalmente cuando se utilizan subdominios, el tratamiento de la información es muy distinto.

Si bien es cierto que algunas cookies, como podría ser un identificador, pueden ser útil en cualquier subdominio, lo más probable es que cada uno de ellos tenga algunas peculiaridades que hacen que no sea necesario su uso.

Muchos de los navegadores por defecto no limitan el uso de las cookies a los subdominios, por lo que la información, y la velocidad de intercambio de datos, puede ralentizar el sistema si no se trabaja correctamente con ello.

Dominios sin cookies para estáticos

Por norma general, y como he comentado en la parte del CDN o del Domain Sharding, es interesante que los contenidos estáticos estén en un dominio distinto al que se usa para la programación o el sitio web navegable por el usuario.

Teniendo en cuenta esto, se plantea como un tema interesante que los contenidos estáticos (o sea, los dominios para estáticos) no tengan cookies, ya que no van a ser utilizadas y vamos a reducir el ancho de banda de cada una de las peticiones.

Para conseguir esto necesitamos un dominio (es mejor no usarlo con un subdominio o similar) y que el servidor web no acepte cookies. Para ello, por ejemplo, en Apache podemos usar una codificación tal que:

<FilesMatch "\.(ico|gif|jpg|png|flv|pdf|mp3|js|css|xml)$">
Header set Cache-Control "max-age=2592000"
Header always unset Set-Cookie
Header unset ETag
FileETag None
</FilesMatch>

Para eliminarlo, esta vez en Internet Information Server 6 hay que seguir los pasos:

  • En el sitio web pulsar botón de propiedades y entrar en propiedades.
  • Entrar en la pestaña HTTP Headers / Cabeceras HTTP
  • Añadir una entrada nueva: Etag de nombre y vacío el contenido.