【问题标题】:What does ?t=some-number mean when used at the end of an image url?t=some-number 在图片网址末尾使用时是什么意思
【发布时间】:2020-01-11 22:42:43
【问题描述】:

这是我在Steam 上找到的示例图片网址。

https://steamcommunity-a.akamaihd.net/public/shared/images/header/globalheader_logo.png?t=962016

无论有没有?t=962016,图像网址都会给出相同的结果。这叫什么?它有什么作用?

【问题讨论】:

  • 虽然我们可以猜测,但只有运行该网站的人知道他们的服务器对查询字符串做了什么。
  • 可能是cache buster

标签: http url query-string imageurl


【解决方案1】:

?t=962016

这是一种禁用浏览器缓存的技术,浏览器将其视为新 url,并再次从 Web 服务器获取资源。资源可以是图像、css 文件、js 文件等。这是最常见的用例,但也可以由 Web 服务器以不同方式使用。

还有另一个用例。我已经完成了我的项目之一。

我已通过 php 脚本向 *.jpg 处理所有请求。 例如:mysite.com/user/avatar.jpg?id=100

avatar.jpg 实际上是一个 php 脚本,它接受查询参数(在本例中为 id 100)并返回相应用户的头像(id 为 100 的用户)。浏览器将此视为图像。另一个优点是我们可以直接禁用hot linking 这个图像,因为脚本可以检查请求是否来自同一个域。

【讨论】:

  • 所以我猜962016 是图像的版本字符串,每当图像更改时,浏览器都会强制从文件中获取而不是从缓存中获取。
【解决方案2】:

IMO 有两种可能性 - 他们放那个参数是为了避免图像被缓存,在这种情况下 t 的值是随机的 - 图片可以通过脚本生成,此时t的值为图片的id。

【讨论】:

    猜你喜欢
    • 2015-03-03
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多