首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java (Tomcat):如何配置无cookieless子域来提供静态内容

问Java (Tomcat):如何配置无cookieless子域来提供静态内容
EN

Stack Overflow用户
提问于 2010-05-22 01:12:01
回答 2查看 2.1K关注 0票数 4

这是Google和Yahoo给出的提示之一!为了加快网页加载速度,需要配置一个无cookieless的子域来服务静态内容。

如何在独立模式下使用Tomcat配置“无cookieless子域”(这个问题不是关于如何使用Apache以无cookieless方式提供静态内容,而是关于如何在Tomcat独立模式下执行此操作)?

请注意,我不关心支持If-Modified-Since的过滤器,也不关心支持gzip的过滤器:我提供的静态内容是永远可缓存的(否则它的名称将会改变),而且它已经是压缩数据(所以gzip只会减慢传输速度)。

我需要两个不同的Tomcat need应用吗?(一个"cookiefull“和一个”cookiefull“)

我是否需要两个不同的servlet?(到目前为止,我只有一个dispatcher/controller servlet)。

为什么一个指向静态图片的“常规”链接会以cookiefull的方式被调用,而当它在一个子域上时,它又会以一种“无cookie”的方式被调用?

我不知道到底是怎么回事:是浏览器决定要不要向查询追加cookie?如果是这样,为什么不将cookie附加到“无cookie”子域上的静态查询中。

任何关于幕后情况的例子都是非常受欢迎的:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-22 01:23:26

您只需要设置另一个域。它可以指向相同的webapps。只需确保您不会在这个新域上丢失cookie。

例如,您的主站点是

代码语言:javascript
复制
  www.example.com

你可以拥有另一个域名

代码语言:javascript
复制
  static.example.com 

用于您的cookie-less静态资源。它们可以指向相同的主机,转到相同的Servlet。你只需要在你的应用程序中确保你不会丢弃这些静态内容的cookie。

编辑:假设您的静态内容由Tomcat中的默认servlet提供,则无需执行任何操作。它不会为你丢弃cookie,所以你的新域名应该是没有cookie的。

如果必须在同一个servlet中处理静态内容,可以这样做,

代码语言:javascript
复制
   if (!request.getServerName().equals("static.example.com")) {
       // Drop cookie
   }

此示例假设您没有在根域(.example.com)中删除cookie。如果你这样做,你必须获得另一个域名,如examplecdn.com。

票数 3
EN

Stack Overflow用户

发布于 2011-10-14 05:59:03

我在这里发布了这个:URL/Subdomain rewrites (htaccess)

想你可能有它向后,(或很可能我这样做)来澄清,如果你实现了一个无cookie的子域&有一个基本网址为www。至少在这种情况下,cookie被设置在www上,例如:一个主要的cookie设置程序是google analytics,所以当在我的网站上设置他们的脚本时,它看起来是这样的:

代码语言:javascript
复制
`var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'analytics-acc-#],

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

代码语言:javascript
复制
['_trackPageview']);

`

您可以在这里看到,我将我的主域设置为www,如果我错了,请纠正我,在我的情况下,我需要将www重定向到非www子域&而不是相反。这也是在我的cpanel上进行的cname设置(指向www.domain.com的cname= "cdn“)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2884065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档