一、AFNetworking整體框架是怎樣的
1、UIKit集成模塊 UIKit
2、請求序列化 Serialization
3、回應序列化 Serialization
4、會話 NSURLSession AFURLSessionManager最核心 子類:AFHTTPSessionManager
6、網路安全模塊 Security
7、網路監聽 Reachability
會話NSURLSession模塊
NSURLSession
- AFURLSessionManager:最核心模塊
- AFHTTPSessionManager:繼承 AFURLSessionManager 使用頻率最高
- AFHTTPSessionManager包含有:
-
- AFURLResponseSerialization:回應序列化,負責將網路請求的結果決議
- AFURLRequestSerialization:請求序列化負,責根據傳遞引陣列裝、拼接最終轉化出的一個結果
面試題:
AFURLSessionManage都負責哪些作業
- 創建和管理NSURLSession、NSURLSessionTask
- 實作NSURLSessionDelegate等協議的代理方法
- 引入AFSecurityPolicy保證請求安全
- 引入AFNetworkReachabilityManager監控網路狀態
發送一個Get方式的HTTP請求
1、呼叫get方法、內部使用 NSURLSessionDataTask 來實作
2、requestWithMethed 請求序列化、字典轉換成json字串
3、dataTaskWithRequest 呼叫系統方法、給dataTask 設定代理給 AFURLSessionManagenTaskDelegate
驗證證書合法性的代碼:
SecTrustRef
SecTrustRef
這是一個需要驗證的信任物件,包含待驗證的證書和支持的驗證方法等.
SecTrustResultType
表示驗證結果,其中 kSecTrustResultProceed表示serverTrust驗證成功,且該驗證得到 了用戶認可(例如在彈出的是否信任的alert框中選擇always trust), kSecTrustResultUnspecified表示 serverTrust驗證成功,此證書也被暗中信任了,但是用 戶并沒有顯示地決定信任該證書, 兩者取其一就可以認為對serverTrust驗證成功,
SecTrustEvaluate
證書校驗函式,在函式的內部遞回地從葉節點證書到根證書驗證,
需要驗證證書本身的 合法性(驗證簽名完整性,驗證證書有效期等);
驗證證書頒發者的合法性(查找頒發者 的證書并檢查其合法性,這個程序是遞回的).而遞回的終止條件是證書驗證程序中遇到 了錨點證書(錨點證書:嵌入到作業系統中的根證書,這個根證書是權威證書頒發機構頒 發的自簽名證書).
上面所說的只是一般的校驗方法,那么在有的客戶端中,為了確定服務端回傳的證書是否是自己所需要的證書,這時我們需要在客戶端中匯入本地證書,
NSURLAuthenticationChallenge
(NSURLProtectionSpace *)protectionSpace;
(NSURLCredential *)proposedCredential;
(NSInteger)previousFailureCount;
(NSURLResponse *)failureResponse;
(NSError *)error;
NSURLProtectionSpace
NSURLAuthenticationChallenge中 的一個屬性NSURLProtectionSpace這是權限認證的核心,它通常被稱為保護空間,表示需要認證的服務器或者域,它定義了一系列的約束去告訴我們需要向服務器提供什么樣的 認證,這個保護空間含有以下幾個資訊:
其中authenticationMethod中包含的認證型別如下
NSURLProtectionSpaceHTTP//_http協議
NSURLProtectionSpaceHTTPs//https協議
NSURLProtectionSpaceFTP//ftp協議
NSURLProtectionSpaceHTTPProxy//http代理
NSURLProtectionSpaceHTTPSProxy//https代理
NSURLProtectionSpaceFTPProxy//ftp代理
NSURLProtectionSpacesockSProxy//socks代理
NSURLAuthenticationMethodDefault//協議的默認身份認證
//http的basic認證,等同于NSURLAuthenti
NSURLAuthenticationMethodHTTPBasic
cationMethodDefault
NSURLAUthenticationMethodHTPDigest//htt摘要認證
NSURLAuthenticationMethodHTMLForm//htm表單認證
NSURLAUthenticatioMethodlnrtifct,適用協議
//ServerTrust認證,適用于任何協議
NSURLAuthenticationMethodserverTrust
AFN 快取模塊對比SD
●AFN圖片快取是設定2個臨界值,最大存盤值和清理后保留的快取值,到達最大值則清理最早存入的圖片,直到達到清理后需要留存的臨界值為止,只以臨界值為節點清理,
●SD圖片快取很明顯是愿意犧牲空間來換時間,能多存點就多存點,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/518999.html
標籤:iOS
