【问题标题】:Browser doesn't add max-age=0 to some request on browser refresh浏览器不会在浏览器刷新时将 max-age=0 添加到某些请求中
【发布时间】:2014-09-14 05:44:47
【问题描述】:

我正在使用 Firefox,我正在从服务器请求多个 URL。当 F5 或 Cntrl+R 重新加载页面时,浏览器通过在请求中设置 max-age = 0 重新向服务器发送请求以重新验证与服务器缓存的响应。这是浏览器处理刷新的理想方式。

但对于某些 URL,它不会重新发送 URL,而是从自己的缓存中提供服务。我希望这些请求得到源站的重新验证。

**Response Header for this :**

Access-Control-Allow-Orig...    *
Cache-Control   public, s-maxage=0, max-age=21600
Content-Encoding    gzip
Content-Length  167
Content-Type    application/json
Date    Wed, 23 Jul 2014 06:51:35 GMT
Expires Wed, 23 Jul 2014 12:51:36 GMT
Proxy-Connection    close
Server  lighttpd/1.4.32
Vary    Accept-Encoding
Via 1.0 roswell:3128 (squid/2.6.STABLE21)
X-Cache MISS from roswell
X-Cache-Lookup  MISS from roswell:3128


**Request Header**
Accept  application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection  keep-alive
Host    some-host
Origin  origin
Referer referer
User-Agent  Mozilla/5.0 (Windows NT 6.1; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0

浏览器不再发送此请求的原因可能是什么?请帮忙。

【问题讨论】:

  • 您是否在多个浏览器上尝试过这种行为?

标签: browser http-headers httpresponse browser-cache squid


【解决方案1】:

此行为与标头有关,但与浏览器发送的标头无关。浏览器会积极缓存任何内容,除了那些具有过期的 max-age 和 服务器在 Cache-Control 标头中标记的设置“must-revalidate”的内容。您看到的是服务器上标有 max-age=21600 的内容的正常浏览器行为。

但是现在,继续你的问题:

我希望这些请求由源重新验证。

如果您使用键盘热键,您有两个选项可以重新加载当前页面(根据https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly“导航”部分);您可以重新加载(并使用缓存中的所有可缓存项目)或重新加载覆盖缓存。

热键是 F5 / CTRL+R 用于使用可缓存项目重新加载,CTRL+F5 / CTRL+SHIFT+R 用于重新加载覆盖任何缓存。

【讨论】:

    猜你喜欢
    • 2021-03-14
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2012-08-26
    相关资源
    最近更新 更多