1
我對理解iOS中的緩存機制有點困惑。NSURLCacheStoragePolicy請求與響應
我一直在閱讀這個博客NSURLCache來定製我的緩存策略。 我希望我的緩存完全由我的服務器緩存頭控制。
所以我設置
[request setCachePolicy:NSURLRequestReturnCacheDataElseLoad];
現在上面的博客指定我還可以指定NSCachedURLResponse緩存策略。
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
{
NSMutableDictionary *mutableUserInfo = [[cachedResponse userInfo] mutableCopy];
NSMutableData *mutableData = [[cachedResponse data] mutableCopy];
NSURLCacheStoragePolicy storagePolicy = NSURLCacheStorageAllowedInMemoryOnly;
// ...
return [[NSCachedURLResponse alloc] initWithResponse:[cachedResponse response]
data:mutableData
userInfo:mutableUserInfo
storagePolicy:storagePolicy];
}
那麼,首先有什麼使用緩存策略的請求? 存儲策略是請求參數還是響應參數。
這是否意味着熱曲est緩存策略作爲HTTP請求頭髮送,以便服務器可以在其末尾決定緩存策略? NSURLRequestCachePolicy如何影響客戶端呢? –
@KunalBalani,不,NSURLRequestCachePolicy的值不會發送到服務器。它用於決定如何加載數據:從遠程服務器或本地緩存。服務器可以爲緩存提供任何附加信息(例如,數據可以從緩存中加載的時間段。例如,如果服務器設置header:cache-control:600,則意味着在接下來的10分鐘(600秒)會從緩存中加載數據。 –