Java (Tomcat): comment configurer un sous-domaine cookieless pour servir du contenu statique

StackOverflow https://stackoverflow.com/questions/2884065

  •  04-10-2019
  •  | 
  •  

Question

L'un de la pointe donnée par Google et Yahoo! pour accélérer le chargement des pages Web est de configurer un sous-domaine cookieless au contenu statique du serveur.

Comment configurer un « sous-domaine cookieless » en utilisant Tomcat en mode autonome (cette question n'est pas sur la façon d'utiliser Apache pour servir du contenu statique dans un cookieless sens, mais sur la façon de le faire en mode Tomcat autonome)?

Notez que je ne me soucie pas de filtres de soutien If-Modified-Since ni soins sur les filtres de soutien gzipping: le contenu statique que je suis au service est toujours cacheable (ou son nom changera) et il est déjà données compressées (si gzip ne ferait que ralentir sur le transfert).

Ai-je besoin de deux webapps Tomcat différents? (Une "cookiefull" et un "cookie")

Ai-je besoin de deux servlets différents? (À partir de maintenant, j'ai seulement un servlet répartiteur / contrôleur).

Pourquoi un lien « régulier », disons, une image statique appelée de manière cookiefull quand il serait sur le même domaine que le principal webapp et appeler d'une manière « cookie-moins » quand il est sur un sous-domaine?

Je ne comprends pas exactement ce qui se passe: il est le navigateur qui décide de reprendre ou non les cookies à la requête? Si oui, pourquoi ne serait-il pas ajouter les cookies pour une requête statique sur un sous-domaine « de cookieless ».

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

Était-ce utile?

La solution

Vous avez juste besoin de configurer un autre domaine. Il peut pointer vers les mêmes webapps. Assurez-vous que vous ne déposez pas 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, vont à la même Servlet. Il vous suffit de vous assurer dans votre application que vous ne déposez pas les cookies pour ces contenus de statiques.

EDIT: En supposant que votre contenu statique est servi par le servlet par défaut dans Tomcat, vous n'avez pas à faire quoi que ce soit. Il ne baisse pas les cookies pour vous afin que votre nouveau domaine devrait être libre de cookie.

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 examplecdn.com.

Autres conseils

Je posté sur ce sujet ici: URL / Subdomain réécritures (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 et 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, corrigez-moi si je me trompe dans mon cas je aurais besoin de rediriger www à sous-domaine non www et non l'inverse. Ceci est également la configuration cname fait sur mon cPanel (cname = "cdn" pointant vers www.domain.com)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top