gpt4 book ai didi

ios - NSURLCache 是否删除过期的缓存响应?

转载 作者:可可西里 更新时间:2023-11-01 06:11:31 31 4
gpt4 key购买 nike

Apple 从 iOS 5.0 开始支持磁盘缓存。我以前使用的是自制解决方案,但我正在测试 NSURLCache,希望最终能使用它,因为我在过去看到过奇怪的行为。

我遇到的一个更令人费解的问题是 cachedResponseForRequest: 返回过期的请求。我一直在通过将我正在使用的 iPhone 上的时钟向前设置来进行测试。解析 header 清楚地表明设备时间早于到期日期。

我愿意接受可能有一个后台任务定期修剪过期的请求。我已经完成了测试,实际上我在等着看请求是否“自然”过期,但事实并非如此。

Apple 是否未能正确实现缓存失效?

我正在使用 Charles 进行测试代理人。这是一个tough problem而且我不羡慕任何必须实现缓存失效的人,但 iOS 现在应该是一个成熟的 SDK。

最佳答案

有两种http缓存机制:过期和验证。
如果响应尚未过期,客户端可以从缓存中获取响应,而无需向服务器发出请求。
如果它已过期,客户端可以使用 If-MatchIf-Modified-Since header 条目进行条件请求。
如果服务器响应 304 Not Modified,客户端可以使用缓存中的数据,即使它已经过期。

有关更多详细信息,请查看 http://www.w3.org/Protocols/rfc2616/rfc2616-sec13.html .

关于ios - NSURLCache 是否删除过期的缓存响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11996572/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com