【问题标题】:Bit.ly URL Caching IssueBit.ly URL 缓存问题
【发布时间】:2023-03-10 01:35:01
【问题描述】:

这似乎是 Bit.ly URL 缩短服务的一个严重问题。实际上,我已经为我的 URL2“www.myserver.com/myjson.txt”创建了一个 bit.ly URL1,例如“http://bit.ly/xyzabcd”。

案例 1:点击位 URL1 无论 myjson.txt 中的响应是什么,我都会收到响应。这是意料之中的。

案例 2:如果我更新 URL2 的 json 内容然后回击位 URL1,则浏览器正在缓存响应。这是一个糟糕的案例。

案例 3:如果我手动点击 URL2,那么我会得到旧的响应,但是在附加一些随机 no 的 URL 之后,它会按预期得到新的响应。这是手册。

我的真实用例:我在我的 Chrome 扩展应用程序中使用这个 bit.ly URL,它无法处理更新的响应,因为在 bit.ly URL1 内部缓存了旧响应本身。

这里的问题是我们不能修改 bit.ly URL1,我们不能让 bit.ly 修改(附加任何随机数)我的 URL2 响应。

感谢您为解决此问题提供的帮助和建议。我假设 bit.ly 将始终获取最新响应,但在这种情况下 2 失败了!!

【问题讨论】:

  • 这是因为您的网站没有返回数据已被修改,我不相信它的bit.ly 错误,而是您的服务器无法说数据已被修改
  • 案例 3 描述了该问题,如果我将任何随机数查询参数附加到 URL2,那么我将获得更新的响应,这意味着我的服务提供最新/更新的数据没有问题。但是 bit.ly 无法获得最新的响应,隐式浏览器本身缓存了响应,并且 bit.ly 应该有一种方法/解决方案来获取最新的响应。

标签: url-shortener bit.ly


【解决方案1】:

nrathaus 是正确的。 Bitly 不控制从您的服务器发送的数据。我们发送了一个 301 重定向,您的浏览器应该缓存该重定向,但该响应中除了长 URL 的位置之外没有其他内容。

您应该确保“www.myzerver.com/myjson.txt”正在发送适当的标头以告诉您的浏览器永远不要缓存它。有关要发送哪些标头的详细信息,请参阅此 StackOverflow 答案。

【讨论】:

  • 我同意你的观点,但在这种情况下,http 资源(myjson.txt)是一个普通的 json/text/file,我相信我们不能添加任何 http 标头来防止客户端缓存。如果您找到任何解决方案,请告诉我。
  • 在那个特定的文件夹中,我什至尝试创建 .htaccess 文件并设置 http 标头字段以防止使用以下配置进行缓存,但仍然在响应标头中我找到了缓存参数。请检查以下内容: ---.htaccess---- ExpiresActive On ExpiresDefault A1 Header append Cache-Control must-revalidate Header set Cache-Control "max-age= 0, no-cache, no-store, must-revalidate" Header set Pragma "no-cache" `
  • 由于格式规则错误,我无法将其粘贴到此处,而是在此处分享 - link
【解决方案2】:

当您能够使用相同的短 url 更改目标 url 时,其他一些 url-shorteners 就是这种情况,它总是重定向到旧的目标 url。这是因为响应 301 重定向到旧目的地的浏览器缓存。当您向缩短的 url 添加一些随机参数时,它将返回正确的目标 url。 这是浏览器缓存重定向的问题。如果您需要确认,请在私人会话(隐身窗口)中插入缩短的 url,它会正确运行!

https://bugs.chromium.org/p/chromium/issues/detail?id=633023&can=1&q=clear%20301%20redirects&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Component%20Status%20Owner%20Summary%20OS%20Modified

【讨论】:

    猜你喜欢
    • 2011-10-31
    • 2011-08-25
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 2012-05-20
    • 1970-01-01
    相关资源
    最近更新 更多