ios- NSURLRequest緩衝策略以及NSURLConnection發送非同步請求,
關於NSURLRequest的下面的這個方法緩衝策略的舉例
[NSURLRequest requestWithURL:url cachePolicy:policy timeoutInterval:1]
NSURLRequestUseProtocolCachePolicy = 0, 預設的緩衝策略
NSURLRequestReloadIgnoringLocalCacheData = 1, 忽略本機快取資料,直接去載入網路資料 這樣的好處就是資料可以即時的更新
NSURLRequestReturnCacheDataElseLoad = 2, 使用快取資料,忽略其到期時間;只有在沒有緩衝版本的時候才從源端載入資料。
NSURLRequestReturnCacheDataDontLoad = 3, 返回緩衝的資料,如果沒有緩衝的資料就請求失敗
其中對於預設的緩衝策略的描述如下所示摘抄網路
如果請求的緩衝響應不存在,則URL載入系統直接從源端載入資料;
否則,如果緩衝響應中沒有明確表示每次請求必須重新驗證,則如果不是響應的緩衝到期了,則URL載入系統會返回快取資料
如果緩衝的響應到期或者需要重新驗證,URL載入系統發送HEAD請求到源端,查看資源是否發生了變化。如果變化了,則URL載入系統取出從始發源的資料。否則,它返回緩衝的響應。
補充一下
NSURLResponse中的屬性
URL 伺服器返回的URL,大多數情況下和我們請求的URL是一樣的,但是有的時候可能會有重新導向的情況產生
MIMEType 位元據的檔案類型
expectedContentLength 下載檔案的長度
textEncodingName 文本編碼名稱
suggestedFilename 伺服器建議的儲存的檔案的名稱
NSHTTPURLResponse 的屬性
statusCode 狀態代碼
allHeaderFields 所有回應標頭的資訊