我的服务器返回文件的以下标题:
Accept-Ranges:bytes
Connection:Keep-Alive
Content-Length:155
Content-Type:text/css
Date:Thu, 06 Feb 2014 18:32:44 GMT
ETag:"99000000061b06-9b-4f1c118fdd2f1"
Keep-Alive:timeout=5, max=100
Last-Modified:Thu, 06 Feb 2014 18:32:37 GMT
如您所见,它不会返回cache-control
标头,但会返回ETag
和Last-Modified
标头。
我的问题是浏览器是否要缓存所请求的文件?我可以观察到,在以下请求中,浏览器在标头中发送ETag:"99000000061b06-9b-4f1c118fdd2f1"
,服务器返回状态码304。
第二个问题:如果ETag
设置为Cache-control
,浏览器是否会缓存资源并请求no-cache
?
答案 0 :(得分:0)
对于问题的第一部分 - 如果响应将被缓存以及何时将重新验证,则由您的浏览器(其实现和配置)决定。浏览器行为与验证标头和没有验证标头的行为之间的唯一(标准化)差异是前者可以通过验证减少服务器的流量。
第二个问题:是的。浏览器将缓存资源,但每次打开页面浏览器时都会询问源服务器是否未修改资源。如果未修改服务器将响应304并且浏览器将显示缓存内容。否则服务器将发送新内容。
答案 1 :(得分:0)
我的猜测是 ETag
可以用作 cache-control: no-cache
。