Я использую NSURLCache
с AFNetworking
. Кэширование работает нормально, но нет возможности проверить, действительно ли ответ был извлечен из кеша. Чтобы проверить, доступна ли кешированная версия, я использую
[[NSURLCache sharedURLCache] cachedResponseForRequest:_request];
чтобы проверить кэшированную версию моего файла.
Мой сервер отправляет следующие заголовки:
Cache-Control:public, must-revalidate, max-age=0
ETag:"317a405bf9f69346c1f0438736a3d02e"
В основном это должно гарантировать, что кэшированный ответ устарел сразу после загрузки. Однако cachedResponseForRequest:
по-прежнему загружает на диск предыдущую кэшированную версию, даже если срок ее действия истек.
- Срок действия
NSURLCache
никогда не истекает, или я отправляю неправильные заголовки и т. д.? - Я пропустил что-то еще здесь?
ИЗМЕНИТЬ
Я также пытался отправить
Expires: "Mon, 27 May 2013 14:34:50 GMT"
заголовок, и ответ все еще возвращается из кеша, даже если срок его действия уже истек. У меня такое ощущение, что NSURLCache
работает неправильно...