body:
I think the response code should be 304, not 304 Not Modified,I hope the browser caches the image(don't request the varnish) but it doesn't work.
Could you suggest me?
Thanks & Regards.
答案 0 :(得分:0)
您需要在将来的某个时间添加Expires
响应标头集。
在当前状态缓存工作中,允许浏览器保存缓存副本一年
但由于没有过期,它必须验证服务器端的内容,可能使用条件请求标头,例如If-None-Match
(如果您在响应标头中使用E-Tag
)或If-Modified-Since
(如果使用正在使用Last-Modified
)。
您可以使用以下vcl代码段(从https://www.varnish-cache.org/trac/wiki/VCLExampleSetExpires借用)添加Expires
标头:
set beresp.http.Expires = "" + (now + beresp.ttl);
但是,我在请求标头中看不到If-Modified-Since
。这很奇怪,因为它应该允许清漆以304响应。
PS> 304
或304 Not Modified
并不重要,现在好了。