Comment configurer un domaine sans cookie?


24

J'ai lu qu'il est préférable de diffuser du contenu statique (CSS, Javascript, etc.) à partir d'un domaine ou d'un sous-domaine sans cookie pour de meilleures performances. Je suppose qu'un domaine n'est pas sans cookie par défaut. Comment spécifier que je ne souhaite pas utiliser de cookies?


3
Ce genre de chose n'a vraiment aucune importance à moins que vous ne diffusiez des milliers de pages par heure ou des milliers de pages par minute.

"Bien que nous fassions de notre mieux pour réduire la taille des cookies, notre utilisation de Google Analytics place la taille moyenne des cookies de l'utilisateur à environ 1 kilo-octet." Utile et connexe - chrishateswriting.com/post/68794699432/small-things-add-up
mvark

Réponses:


26

Lorsque des choses comme YSlow et Page Speed vous demandent de configurer des domaines sans cookie, cela signifie en fait servir des médias à partir d'un domaine où vous n'en définirez pas ou n'en avez pas défini (globalement) dans le passé. Parfois, cela peut être accompli en utilisant des sous-domaines, tels que media.domain.com, ou static.domain.com, cependant, si vous définissez un cookie sur domain.comqui s'applique au domaine dans son ensemble - un cookie pour *.domain.com- alors ce cookie sera renvoyé par le client au serveur sur chaque demande pour chaque domaine associé à domain.com. Cela inclut tous les sous-domaines.

Le cookie global devient un problème si vous décidez de renoncer à l'utilisation de www.sur vos domaines. Sans un sous-domaine spécifique pour lequel définir un cookie, tous les cookies doivent être définis *.domain.compour qu'ils fonctionnent.

Ce problème de cookie mondial est la raison pour laquelle vous verrez des médias statiques servis à partir d'endroits comme ytimg.comsur YouTube. ytimg.comne diffusera jamais de contenu dynamique pouvant définir des cookies, ce qui signifie qu'aucun cookie ne sera jamais renvoyé du client au serveur lorsque ces domaines font partie des requêtes HTTP.

Si vous êtes certain que vous n'aurez jamais défini de cookie, *.domain.comvous pouvez utiliser un sous-domaine pour vos besoins. Sachez que la plupart du temps, si vous vous intégrez à un autre site ou service via Javascript, ils installent des cookies de domaine mondiaux.

Dans Apache (et je suis sûr que tous les autres serveurs Web), vous pouvez définir ou supprimer les en-têtes avant de répondre aux demandes. Cela ne résoudra pas le problème de l'envoi du cookie par le client à votre serveur, mais cela empêchera vos domaines d'envoyer ou de définir initialement des cookies. Un problème uniquement si vous diffusez du contenu qui n'est pas statique à partir de vos domaines sans cookie, ce qui va à l'encontre de leur objectif.

Header unset Cookie
Header unset Set-Cookie 

Cela supprimera les en-têtes des cookies existants et pour la création de nouveaux cookies. Encore une fois, seulement un problème si vous diffusez du contenu de vos domaines statiques qui pourrait potentiellement créer un cookie. Placez-le dans votre site ou dans la configuration de virtualhost (qui, en fonction de votre système d'exploitation, de votre serveur et de votre version, peut avoir un certain nombre d'emplacements).


"Un problème uniquement si vous diffusez du contenu qui n'est pas statique à partir de vos domaines sans cookie, ce qui va à l'encontre de leur objectif." - pourquoi exactement? Il n'y a rien sur le contenu généré dynamiquement qui nécessite intrinsèquement des cookies.

1
Je n'ai pas dit que servir le contenu dynamique de votre domaine statique définissait intrinsèquement quoi que ce soit. J'ai dit que les cookies seraient un problème si vous diffusiez du contenu dynamique qui définissait des cookies de votre domaine statique. Le domaine statique a pour but de servir du contenu qui ne nécessite aucune interaction: images, css, js, etc. Le contenu dynamique - qui est l'endroit où vos cookies doivent être définis - ne doit pas être géré par le domaine statique.
Bryson

6

Comment spécifier que je ne souhaite pas utiliser de cookies?

Il ne s'agit pas de ce que vous devez faire pour avoir un domaine sans cookies - c'est plutôt de ce que vous devez ne pas faire ... Pour avoir un domaine sans cookies, vous devez vous assurer que votre application s'exécutant sur ce domaine ne définit aucun cookie . Cela signifie généralement ne pas avoir de connexions, ne pas avoir Google Analytics, ne pas avoir de sessions - c'est-à-dire simplement servir des médias et rien d'autre. Évidemment, cela dépend de votre configuration.

Une erreur que j'ai faite récemment est que je n'ai pas fait la distinction entre un domaine et un sous-domaine. J'ai commencé à servir tous mes médias en http://media.example.compensant que c'était un domaine sans cookies mais en fait c'est un sous- domaine et j'ai trouvé beaucoup de mes cookies sur le site principal http://www.example.comoù ils étaient définis au niveau du domaine et donc polluaient mon sous-domaine sans cookies. Voici le lien pour savoir comment j'ai résolu ce problème: /server/160210/nginx-serve-static-content-from-a-cookieless-domain


2
Les cookies de www.example.net ne seront pas envoyés à static.example.net, mais les cookies de le example.netseront. La solution est de rediriger example.netvers www.example.net.
TRiG

3

Comment spécifier que je ne souhaite pas utiliser de cookies?

Vous n'avez pas besoin de spécifier que vous ne souhaitez pas utiliser de cookies, vous ne les utilisez tout simplement pas.


3
Pas toujours une option. Les intégrations de fonctionnalités Javascript d'autres sites définissent généralement des cookies globaux pour le domaine, que vous les vouliez ou non.
Bryson
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.