在优化我们网站的缓存行为时,我注意到大量的if-none-match
请求被发送到我们的网站。据我了解缓存,只要缓存仍然有效,情况就不应该如此。
一个特定的请求会生成以下内容response-header
:
HTTP/1.1 200 OK
Cache-Control: public, max-age=25920000
Transfer-Encoding: chunked
Content-Type: application/javascript; charset=utf-8
Content-Encoding: gzip
Expires: Thu, 04 Feb 2016 17:20:09 GMT
Last-Modified: Mon, 01 Jan 2001 23:00:00 GMT
ETag: W/"0"
Vary: Accept-Encoding
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
Date: Fri, 10 Apr 2015 16:20:09 GMT
如您所见,缓存的有效期应为 300 天。按照我的理解,浏览器应该在那段时间直接使用它的缓存。只有在这段时间结束后,它才会发出带有 header 的请求if-none-match
。但是浏览器似乎忽略了这一点,if-none-match
并在每次加载页面时发送这个 -request 只是为了接收304-response ("Not Modified")
.
我需要更改什么以防止浏览器发送这些无用的请求?