Azure 没有缓存控制或过期标头的CDN强缓存问题
我们使用Azure CDN来服务图像,我试图理解为什么图像被web浏览器强缓存,即使图像响应中没有缓存控制或Expires头 例如,从Azure CDN为映像返回以下响应头:Azure 没有缓存控制或过期标头的CDN强缓存问题,azure,http,caching,cdn,etag,Azure,Http,Caching,Cdn,Etag,我们使用Azure CDN来服务图像,我试图理解为什么图像被web浏览器强缓存,即使图像响应中没有缓存控制或Expires头 例如,从Azure CDN为映像返回以下响应头: HTTP/1.1 200 OK Accept-Ranges: bytes Access-Control-Allow-Origin: * Content-MD5: KuQCJm6GQyEjejWwmRgRwQ== Content-Type: image/jpeg Date: Tue, 21 Nov 2017 00:15:57
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Content-MD5: KuQCJm6GQyEjejWwmRgRwQ==
Content-Type: image/jpeg
Date: Tue, 21 Nov 2017 00:15:57 GMT
Etag: 0x8D523228F0F4C42
Last-Modified: Sat, 04 Nov 2017 01:22:47 GMT
Server: ECAcc (meb/A744)
X-Cache: HIT
x-ms-blob-type: BlockBlob
x-ms-lease-status: unlocked
x-ms-request-id: 00822b7c-001e-0045-4194-61d246000000
x-ms-version: 2009-09-19
Content-Length: 5143
<<image data>>
HTTP/1.1200正常
接受范围:字节
访问控制允许来源:*
内容-MD5:KuQCJm6GQyEjejWwmRgRwQ==
内容类型:图像/jpeg
日期:2017年11月21日星期二00:15:57 GMT
Etag:0x8D523228F0F4C42
最后修改:2017年11月4日星期六01:22:47 GMT
服务器:ECAcc(meb/A744)
X缓存:命中
x-ms-blob-type:BlockBlob
x-ms-lease-status:未锁定
x-ms-request-id:00822b7c-001e-0045-4194-61d246000000
x-ms-version:2009-09-19
内容长度:5143
如您所见,返回了一个Etag头,但没有缓存控制或过期头
当从浏览器(Chrome)跟踪网络流量(使用Fiddler)时,我们没有看到对这些图像的任何后续请求
我对Etags的理解是,对该映像的后续请求应发送回服务器(弱缓存),然后,如果文件没有更改,服务器可以返回304 not modified响应
有人能解释一下吗?我认为您需要标题缓存控制:必须重新验证才能让浏览器检查源代码,如果没有更改,则返回304 mot MODIFED 但就缓存而言,这并不是最优的 您最好使用QS更改(“v=?”)使js无效,或者设置一个较短的expires/max age标头(60/120秒,或者任何您可以处理的部署,5分钟??)
如果将expires标头与etags结合使用,则浏览器仍然会在过期后从服务器接收到一个未修改的邮件。谢谢。问题在于缺少缓存控制:必须重新验证。