【问题标题】:How to ignore query parameters in web cache?如何忽略网络缓存中的查询参数?
【发布时间】:2011-05-10 06:23:57
【问题描述】:

Google Analytics 使用一些查询参数来识别广告系列并进行 cookie 控制。这一切都由javascript代码处理。看看下面的例子:

http://www.example.com/?utm_source=newsletter&utm_medium=email&utm_ter m=October%2B2008&utm_campaign=promotion

这将通过 JavaScript 设置具有正确广告系列来源的 cookie。此查询参数可以有多个值,有时是随机值。由于它们被用作缓存哈希键,因此在某些情况下缓存性能会严重下降。

我想缓存服务器上的配置并不那么难,只需忽略所有查询参数或特定查询参数。我对吗?

有谁知道在流行的网络缓存解决方案中创建有多难?

我对特定的网络缓存解决方案不感兴趣。很高兴听到您使用的那个。

【问题讨论】:

  • 为什么不直接使用_setAllowAnchor?锚点不会发送到服务器,因此代理缓存永远不会看到它。
  • 对于那个特定的情况,我已经做到了。事实证明,忽略缓存后端的查询参数比我最初预期的要难,有时甚至是不可能的。
  • 是的,这就是我所期望的。有点让我希望谷歌能按照我的要求默认启用_setAllowAnchor
  • 它也有缺点。破坏滥用深度链接的网站。例如:推特

标签: http caching google-analytics


【解决方案1】:

这并不难,但很危险,除非你真的知道自己在做什么,因为你会改变别人网站背后的运作方式。

例如,在 Squid 2.7 中,查看 storeurl_rewrite_program,它允许您重写用于缓存查找的 URL,而不会影响网络上的 URL。

http://www.squid-cache.org/Doc/config/storeurl_rewrite_program/

【讨论】:

    猜你喜欢
    • 2017-08-23
    • 2018-07-30
    • 2022-10-06
    • 2018-10-03
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多