我正在使用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
浏览器不再发送此请求的原因是什么?请帮忙。
答案 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用于重新加载覆盖任何缓存。