【问题标题】:Java (Tomcat): how to configure a cookieless subdomain to serve static contentJava (Tomcat):如何配置无 cookie 子域以提供静态内容
【发布时间】:2011-02-22 11:12:19
【问题描述】:

Google 和 Yahoo! 提供的提示之一!加快网页加载速度的方法是配置一个无 cookie 的子域来服务器静态内容。

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

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

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

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

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

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

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

【问题讨论】:

    标签: java tomcat cookieless


    【解决方案1】:

    您只需要设置另一个域。它可以指向相同的 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。

    【讨论】:

    • @ZZ Coder:啊,我的问题还不够清楚。我知道如何创建子域。我不明白的是“只要确保你(不要)在这个新域上放置cookies”:是什么决定了我是否在那个域上“放置”cookies?浏览器?它如何决定在一个域上而不是另一个域上“删除”cookie? :)
    【解决方案2】:

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

    认为你可能有它倒退,(或者我很可能这样做)澄清,如果你实现一个无 cookie 的子域并且有一个 www 的基本 URL。至少在这种情况下,cookie 是在 www 上设置的,例如:一个主要的 cookie 设置器是谷歌分析,所以在我的网站上设置他们的脚本时,它看起来像这样:

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

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

    ['_trackPageview']);
    

    `

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

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 2015-11-16
      • 2012-04-18
      • 1970-01-01
      • 2011-02-01
      • 2020-10-15
      • 1970-01-01
      • 2011-03-24
      • 2011-04-18
      相关资源
      最近更新 更多