¿Cómo configuro un dominio sin cookies?

24

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?

BenV
fuente
3
Este tipo de cosas realmente no importa a menos que esté sirviendo miles de páginas por hora, o miles de páginas por minuto.
"A pesar de hacer todo lo posible para reducir el tamaño de las cookies, nuestro uso de Google Analytics hace que el tamaño promedio de las cookies del usuario sea de alrededor de 1 kilobyte". Útil y relacionado - chrishateswriting.com/post/68794699432/small-things-add-up
mvark

Respuestas:

26

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.comque 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.comque 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.comnunca 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).

Bryson
fuente
"Solo es un problema si publicas contenido que no es estático de tus dominios sin cookies, lo que anula su propósito". - ¿Por qué exactamente? No hay nada sobre el contenido generado dinámicamente que inherentemente requiera cookies.
1
No dije que servir el contenido dinámico de su dominio estático establezca inherentemente algo. Dije que las cookies serían un problema si sirviera contenido dinámico que establezca cookies desde su dominio estático. El propósito del dominio estático es servir contenido que no requiere interacción: imágenes, css, js, etc. El contenido estático, que es donde deben configurarse las cookies, no debe ser manejado por el dominio estático.
Bryson
6

¿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.compensando 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.comdonde 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

Tom
fuente
2
Las cookies de www.example.net no se enviarán a static.example.net, pero las cookies de example.netsí. La solución es redirigir example.neta www.example.net.
TRiG
3

¿Cómo especifico que no quiero usar cookies?

No tiene que especificar que no desea usar cookies, simplemente no las usa.


fuente
3
No siempre es una opción. Las integraciones de características de Javascript de otros sitios generalmente establecerán cookies globales para el dominio, ya sea que las desee o no.
Bryson