在浏览器刷新时,浏览器不会将max-age = 0添加到某个请求

时间:2014-07-23 06:56:39

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

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

但是对于某些网址,它不是重新发送的网址,而是来自自己的缓存。我希望这些请求得到原点的重新验证。

**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

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

1 个答案:

答案 0 :(得分:0)

此行为与标头有关,但与浏览器发送的不相关。浏览器会积极地缓存任何内容,除了那些已达到最大期限且服务器的缓存控制标题中标记的“必须重新验证”设置的内容。您所看到的是来自服务器的标记为max-age = 21600的内容的正常浏览器行为。

但现在,问你的问题:

  

我希望这些请求得到原点的重新验证。

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

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