Empêcher l'envoi des cookies avec les objets statiques

WRInaute discret
Bonjour tout le monde,

J'ai découvert le plugin page speed récemment et je me suis basé la-dessus pour améliorer la vitesse de mon site. Après maintes modifs je suis arrivé à 92/100 et là j'ai le dernier point à résoudre et c'est le sujet de ma question : "Serve static content from a cookieless domain".

Comment empêcher l'envoi des cookies avec les objets statiques? je ne comprends pas déjà pourquoi c'est le cas sachant que session.auto_start est à false. Donc si j'ai bien compris, le cookies ne doit être envoyé que quand j'ouvre une session délibérément avec la fonction session_start(). Est-ce que j’ai bien compris?

Alors j'ai essayé de créer un sous-domaine static.monsite.com qui est un CNAME sur monsite.com et j'ai essayé de charger les images à partir de ce sous-domaine mais ca change rien du tout! L’explication sur le net est que si l'envoi des cookies est systématique sur le top-level domain "monsite.com", alors c'est systématiquement le cas pour les sous-domaines, yopiiiiiii!

Voila donc, si quelqu'un a une idée de comment contourner ce problème je suis preneur! L'idéal si possible sera d'éviter de prendre un nouveau nom de domaine car c'est galère à gérer!

Je vous remercie d'avance.

Cordialement,
 
WRInaute impliqué
c'est le navigateur qui envoi les cookies lors de la requete (la demande du fichier sur le serveur).
avec un sous-domaine, tu risque quand même d'avoir des cookies qui seront envoyés (les cookies GA par exemple), faut utiliser un nom de domaine spécifique pour les fichiers statiques (au risque de perdre des points au des résolution dns).

j'espère avoir répondu à ta question ;)
 
WRInaute accro
L'envoi des cookies ne se fait pas forcément systématiquement sur l'ensemble du domaine, c'est contrôlé par le paramètre "domain" du header Set-Cookie, tu peux lui dire de n'envoyer que pour le www par exemple (en fait, si ce header n'est pas envoyé, il me semble que par défaut c'est bien le domaine complet seulement qui est concerné, mais tout le monde ou presque met un domain moins spécifique). Tu peux aussi limiter à une partie de l'arbo ("path"), mais ça exclut la home, ce qui n'est généralement pas super cool.

Mais comme indiqué par seebz, il y a beaucoup de conseils qui sont contradictoires: utiliser plusieurs domaines pour faire du parallel download et utiliser un domaine différent pour éviter les cookies sont contradictoires avec le fait d'utiliser moins de domaines pour limiter le nombre de requêtes DNS...

Dans le pire des cas, essaie au moins de t'assurer que tu n'as pas des tonnes de cookies énormes.

Jacques.
 
WRInaute passionné
pour supprimer les cookies GA pour les sous-domaines j'utilise "_setDomainName" (pour la version asynchrone) :
Code:
var _gaq=_gaq||[];
_gaq.push(["_setAccount","UA-3319516-1"]);
_gaq.push(["_setDomainName",document.location.host]);
_gaq.push(["_trackPageview"]);
(function(){
	var a=document.createElement("script");
	a.src=("https:"==document.location.protocol?"https://ssl":"http://www")+".google-analytics.com/ga.js";
	a.setAttribute("async","true");
	document.documentElement.firstChild.appendChild(a)
})();
 
WRInaute discret
je vous remercie tous de vos réponses.

Au fil de vos réponse, j'ai commencé à comprendre ce qui se passe. J'ai regardé le contenu des cookies pour une image téléchargée à partir du domaine www.monsite.com et ce cookies contient une référence à la session utilisateur

Code:
"__utma=XXX; sid=yyy; __utmc=zzz"
et quand je regarde le cookie lié à mon sous-domaine static.monsite.com, il n'y a pas de référence session
Code:
"__utma=XXX; __utmc=zzz"
Donc le site n'a rien envoyé en réalité, ce sont alors les gestionpub, GA et éventuellement addthis qui me posent ces problèmes. Au moins maintenant je sais ce qui cloche.

Pour y remédier je vais procéder comme suit : dans la config php, je vais renseigner la rubrique session.cookie_domain pour mettre www.monsite.com (ce qui évitera toute interaction avec les sous-domaines), et ensuite je vais modifier le code de GA pour y ajouter aussi "_setDomainName" comme proposé par forty. Ça n'éliminera peut être pas tous les cookies inutiles mais ca va au moins réduire leurs nombres ou leurs contenus.

Alors je vais essayer ça ce soir et je poste les résultats de mes tests, mais dans tous les cas je vous remercie tous de vos réponses.

Cordialement,
 
WRInaute discret
Bonjour,

les modifications ont été effectuées :

Configuration php :
Code:
session.cookie_domain = "www.monsite.com"
Ajout dans GA :
Code:
_gaq.push(["_setDomainName",document.location.host]);
Résultat : Les objets sont toujours envoyés au navigateur avec des cookies avec une impression que les données des cookies GA ont doublés de taille. En effet, les informations sont stockées deux fois, une premiere fois avec le domaine ".www.monsite.com" et une deuxieme avec le domaine ".monsite.com".

Je vous avoue que là, je ne comprend plus rien!
 
WRInaute discret
Bonjour,

Toutes les modifications que j'ai effectué n'ont servi à rien! Alors j'ai pris un nouveau nom de domaine réservé aux objets statiques, puis :

www1.domainestatique.com CNAME http://www.monsite.com

Ensuite il suffit de remplacer dans le code ou ajouter une règle dans .htacces pour télécharger les images de www1.domainestatique.com au lieu de http://www.monsite.com et ça marche très bien. Un autre avantage de cette solution est que le navigateur télécharge les objets de la même pages à partir de plusieurs adresses ce qui accélère encore plus la page. Ceci répond à la contrainte "Parallelize downloads across hostnames" de page speed (Regarde mon WWW).

P.S : Désolé de ne pas réponde plus tôt mais je viens de voir ta question.
 
Nouveau WRInaute
Bonjour,

Est-ce vraiment valable du coup de prendre un nouveau domaine, sur un petit site, pour y gagner les quelques points Google Page Speed ou YSlow?
Est-ce que la vitesse de chargement sera si importante à l'avenir qu'il sera nécessaire d'avoir une note >95?
 
WRInaute discret
On a pas d'indications sur le taux a atteindre.
Mais je pense que passer 90% -- pour un petit site sans gros moyen -- c'est déjà bien.
Ensuite, tout dépend du rapport temps passé / estimation du gain (qui est objective mais prendra de plus en plus d'importance)
 
Discussions similaires
Haut