2010-05-21 7 views
4

L'un des conseils donnés par Google et Yahoo! Pour accélérer le chargement des pages Web, vous devez configurer un sous-domaine sans cookie au contenu statique du serveur. Comment configurer un "sous-domaine sans cookie" en utilisant Tomcat en mode autonome (cette question ne concerne pas l'utilisation d'Apache pour servir du contenu statique sans cookie, mais comment le faire en mode Tomcat autonome). ? Notez que je ne me soucie pas des filtres supportant If-Modified-Since ni des filtres supportant gzipping: le contenu statique que je sers est toujours disponible en cache (ou son nom changera) et il est déjà compressé (donc gzip ne le ferait que ralentir le transfert). Est-ce que j'ai besoin de deux webapps Tomcat différentes? (un "cookiefull" et un "cookieless")Java (Tomcat): comment configurer un sous-domaine sans cookie pour servir du contenu statique

Ai-je besoin de deux servlets différents? (pour l'instant je n'ai qu'un seul servlet dispatcher/controller). Pourquoi un lien "normal" vers, par exemple, une image statique serait-il appelé d'une manière cookiefull quand il serait sur le même domaine que la webapp principale et serait appelé alors d'une manière "sans cookie" quand il est sur un sous-domaine?

Je ne comprends pas exactement ce qui se passe: est-ce le navigateur qui décide d'ajouter ou non des cookies à la requête? Si oui, pourquoi ne pas ajouter les cookies à une requête statique sur un sous-domaine "sans cookie".

Tout exemple de ce qui se passe derrière la scène est la bienvenue :)

Répondre

3

Vous avez juste besoin de configurer un autre domaine. Il peut pointer vers les mêmes webapps. Assurez-vous de ne pas laisser tomber les cookies sur ce nouveau domaine.

Par exemple, votre site principal est

www.example.com 

et vous pouvez avoir un autre domaine

static.example.com 

Pour vos ressources cookies moins statique. Ils peuvent pointer vers les mêmes hôtes, aller à la même Servlet. Vous avez juste besoin de vous assurer dans votre application que vous ne laissez pas tomber les cookies pour ces contenus statiques.

EDIT: En supposant que votre contenu statique est servi par le servlet par défaut dans Tomcat, vous n'avez rien à faire. Il ne supprime pas les cookies pour vous, votre nouveau domaine devrait donc être sans cookies.

Si vous devez traiter le contenu statique dans la même servlet, vous pouvez faire quelque chose comme ça,

if (!request.getServerName().equals("static.example.com")) { 
     // Drop cookie 
    } 

Cet exemple suppose que vous ne laissez pas tomber cookie dans votre domaine racine (.example.com) . Si vous faites cela, vous devez obtenir un autre domaine, comme exampleplecdn.com.

+0

@ZZ Coder: ah, ma question n'était pas assez claire. Je sais créer des sous-domaines. C'est le * "assurez-vous de ne pas déposer de cookies sur ce nouveau domaine" * que je ne comprends pas: qu'est-ce qui décide si je "laisse tomber" ou non les cookies sur ce domaine? Le navigateur? Comment décide-t-il de "laisser tomber" les cookies sur un domaine et pas sur l'autre? :) – SyntaxT3rr0r

+0

Voir mes modifications .... –

2

Je posté sur ce ici: URL/Subdomain rewrites (htaccess)

pensez que vous avez à l'envers (ou très probablement moi) de préciser, si votre mise en œuvre d'un sous-domaine cookie moins & ont une URL de base de www.Atleast dans ce cas les cookies sont mis sur www, par exemple: un setter cookie important est Google Analytics, donc lors de la mise leur script sur mon site, il ressemble à ceci:

`var _gaq = _gaq || []; 
_gaq.push(['_setAccount', 'analytics-acc-#], 

['_setDomainName', '[ www.valpocreative.com] 2 ' ],

['_trackPageview']); 

`

Vous pouvez voir ici que je mets mon domaine principal www, me corriger si je me trompe dans mon cas je aurais besoin de rediriger www à sous-domaine non www & pas inverse. C'est aussi la configuration de cname faite sur mon cpanel (cname = "cdn" pointant vers www.domain.com)

Questions connexes