在我的 iOS 应用程序中,我想缓存从不同目的地请求的图像。对于下载图像,我使用 URLSessionDataTasks 和 URLSession.shared 提供的默认缓存机制,它使用 NSURLRequestUseProtocolCachePolicy。
缓存基本上可以正常工作。正在缓存响应,并且正在正确处理诸如 etag 和缓存控制“max-age”之类的缓存标头。但是,如果服务器响应缓存控制标头设置为“no-cache”,则 URLSession 的 URLCache 仍在缓存图像。我可以通过 URLCache.shared.cachedResponse(for: request) 访问缓存的响应,并且具有相同请求的新数据任务将从缓存中返回时间图像(我使用 Charles 代理进行了验证,但我没有看到请求我正在等待)。
为什么它不能正确处理响应的缓存头?我是否需要手动检查响应的缓存标头?