He leído que es mejor servir contenido estático (css, javascript, etc.) desde un dominio o subdominio sin cookies para un mejor rendimiento. Supongo que un dominio no tiene cookies por defecto. ¿Cómo especifico que no quiero usar cookies?
He leído que es mejor servir contenido estático (css, javascript, etc.) desde un dominio o subdominio sin cookies para un mejor rendimiento. Supongo que un dominio no tiene cookies por defecto. ¿Cómo especifico que no quiero usar cookies?
Respuestas:
Cuando cosas como YSlow y Page Speed le dicen que configure dominios sin cookies, lo que en realidad significan es servir medios desde un dominio donde no configurará ninguno, o no ha configurado ninguno (globalmente) en el pasado. A veces, esto se puede lograr mediante el uso de subdominios, como media.domain.com
, o static.domain.com
, sin embargo, si configura una cookie domain.com
que se aplica al dominio en su conjunto, una cookie para *.domain.com
, el cliente enviará esta cookie nuevamente al servidor en cada solicitud para cada dominio asociado con domain.com
. Esto incluye todos los subdominios.
La cookie global se convierte en un problema si decide renunciar al uso de www.
sus dominios. Sin un subdominio específico para configurar una cookie, todas las cookies deben configurarse para *.domain.com
que funcionen.
Este problema global de cookies es la razón por la cual verá medios estáticos servidos desde lugares como ytimg.com
en YouTube. ytimg.com
nunca servirá contenido dinámico que pueda establecer cookies, lo que significa que ninguna cookie será enviada desde el cliente al servidor cuando estos dominios sean parte de las solicitudes HTTP.
Si está seguro de que nunca tendrá una cookie configurada para *.domain.com
, puede usar un subdominio para sus necesidades. Tenga en cuenta que la mayoría de las veces si se integra con otro sitio o servicio a través de Javascript, establecerán cookies de dominio global.
En Apache (y estoy seguro de que cualquier otro servidor web) puede configurar o deshabilitar los encabezados antes de que se respondan las solicitudes. Esto no solucionará el problema del cliente que envía la cookie a su servidor, pero evitará que sus dominios envíen o configuren cookies inicialmente. Solo es un problema si sirve contenido que no es estático de sus dominios sin cookies, lo que anula su propósito.
Header unset Cookie
Header unset Set-Cookie
Esto deshabilitará los encabezados para las cookies existentes y para crear nuevas cookies. De nuevo, solo es un problema si publica contenido de sus dominios estáticos que potencialmente podría establecer una cookie. Coloque esto en su sitio o en la configuración de virtualhost (que dependiendo de su sistema operativo, servidor y versión podría ser cualquier número de lugares).
¿Cómo especifico que no quiero usar cookies?
No se trata de lo que debe hacer para tener un dominio sin cookies, sino de lo que no debe hacer ... Para tener un dominio sin cookies, debe asegurarse de que su aplicación que se ejecuta en ese dominio no establezca ninguna cookie . Esto generalmente significa no tener inicios de sesión, no tener google analytics, no tener sesiones, es decir, solo servir medios y nada más. Obviamente esto depende de su configuración.
Un error que cometí recientemente fue que no hice la distinción entre un dominio y un subdominio. Comencé a servir todos mis medios http://media.example.com
pensando que era un dominio sin cookies, pero en realidad es un subdominio y encontré muchas de mis cookies en el sitio principal http://www.example.com
donde se configuraban a nivel de dominio y, por lo tanto, contaminaban mi subdominio supuestamente sin cookies. Aquí está el enlace de cómo resolví ese problema: /server/160210/nginx-serve-static-content-from-a-cookieless-domain
www.example.net
no se enviarán a static.example.net
, pero las cookies de example.net
sí. La solución es redirigir example.net
a www.example.net
.
¿Cómo especifico que no quiero usar cookies?
No tiene que especificar que no desea usar cookies, simplemente no las usa.