4

谷歌和雅虎都给出的提示之一!加快网页加载速度是配置一个无 cookie 的子域来服务器静态内容。

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

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

我需要两个不同的 Tomcat webapps 吗?(一个“cookiefull”和一个“cookieless”)

我需要两个不同的servlet吗?(到目前为止,我只有一个调度程序/控制器 servlet)。

为什么指向静态图像的“常规”链接在与主 web 应用程序位于同一域时以 cookiefull 方式调用,然后在子域上时以“无 cookie”方式调用?

我不明白到底发生了什么:是浏览器决定在查询中附加还是不附加cookie?如果是这样,为什么不将cookie附加到“无cookie”子域的静态查询中。

任何关于幕后发生的事情的例子都是最受欢迎的:)

4

2 回答 2

3

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

例如,您的主站点是

  www.example.com

你可以拥有另一个域

  static.example.com 

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

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

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

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

此示例假定您不将 cookie 放入您的根域 (.example.com)。如果这样做,您必须获得另一个域,例如 examplecdn.com。

于 2010-05-21T17:23:26.147 回答
2

I posted about this here: URL/Subdomain rewrites (htaccess)

think you may have it backwards, (or very possibly I do) to clarify, if your implementing a cookie-less subdomain & have a base URL of www. Atleast in this case cookies are set on www, for example: a major cookie setter is google analytics, so when setting their script on my site it looks like this:

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

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

['_trackPageview']);

`

You can see here that i set my main domain to www, correct me if i'm wrong in my case I would need to redirect www to non www subdomain & not the other way around. This is also the cname setup made on my cpanel (cname= "cdn" pointing to www.domain.com)

于 2011-10-13T21:59:03.370 回答