【问题标题】:Google Cloud Storage: access via status 200 cached, not status 304谷歌云存储:通过缓存状态 200 访问,而不是状态 304
【发布时间】:2015-08-16 04:06:42
【问题描述】:

我正在将一张图片复制到 Google Cloud 存储中,并希望它可以通过 URL 公开使用。我希望浏览器在可用时使用其缓存版本。

我愿意

gsutil -h "Cache-Control:public,max-age=3600" cp -a public-read -r path/file.png gs://my_bucket/

但是,浏览器不显示此图像的状态 200/cached。相反,它是状态 304。(我在这种情况下设置的 3600 时间限制内。)

【问题讨论】:

    标签: caching google-cloud-storage


    【解决方案1】:

    这是预期的行为。 304 表示“未修改”,所以浏览器应该使用缓存的值。

    the w3 spec。来自文档:

    如果客户端已经执行了一个有条件的 GET 请求并且允许访问,但是文档没有被修改,服务器应该用这个状态码来响应。 304 响应不得包含消息正文,因此始终以标头字段之后的第一个空行终止。

    【讨论】:

    • 据此stackoverflow.com/questions/1665082/…状态304较慢,实际上是向服务器发出请求。我不想那样。
    • @user984003 好吧,这是一个有点不同的问题。您根本无法阻止浏览器请求资源。您当然不能通过使用 HTTP 状态码来做到这一点。 HTTP 状态码仅在已经向服务器发出请求时才相关;它们作为响应的一部分发送。
    • @user984003 您链接到的答案与浏览器何时使用其 自己的 缓存有关。是否这样做取决于用户设置。作为站点所有者,您无法控制浏览器对其自身缓存的操作。你只能告诉它你认为它应该做什么。
    • 如果我访问 google.com,那么徽标图像将加载状态为 200/cached。所以我的浏览器设置为使用缓存。我希望谷歌存储云中的图像具有相同的行为。
    猜你喜欢
    • 2010-12-12
    • 1970-01-01
    • 2013-09-19
    • 2011-08-13
    • 2018-03-23
    • 2016-09-09
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多