一、AFNetworking整体结构是怎样的

1、UIKit集成模块 UIKit

2、恳求序列化 Serialization

3、呼应序列化 Serialization

4、会话 NSURLSession AFURLSessionManager最中心 子类:AFHTTPSessionManager

6、网络安全模块 Security

7、网络监听 Reachability

简单整理AFNetworking架构知识点

简单整理AFNetworking架构知识点

会话NSURLSession模块

NSURLSession

  • AFURLSessionManager:最中心模块
  • AFHTTPSessionManager:继承 AFURLSessionManager 使用频率最高
  • AFHTTPSessionManager包括有:
    • AFURLResponseSerialization:呼应序列化,负责将网络恳求的成果解析
    • AFURLRequestSerialization:恳求序列化负,责根据传递参数组装、拼接终究转化出的一个成果

简单整理AFNetworking架构知识点

面试题:

AFURLSessionManage都负责哪些工作

  • 创建和办理NSURLSession、NSURLSessionTask
  • 完成NSURLSessionDelegate等协议的署理办法
  • 引进AFSecurityPolicy确保恳求安全
  • 引进AFNetworkReachabilityManager监控网络状态

发送一个Get办法的HTTP恳求

1、调用get办法、内部使用 NSURLSessionDataTask 来完成

2、requestWithMethed 恳求序列化、字典转换成json字符

3、dataTaskWithRequest 调用系统办法、给dataTask 设置署理给 AFURLSessionManagenTaskDelegate

验证证书合法性的代码:

简单整理AFNetworking架构知识点

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这是权限认证的中心,它一般被称为维护空间,表明需求认证的服务器或者域,它定义了一系列的约束去告诉我们需求向服务器供给什么样的 认证,这个维护空间含有以下几个信息:

简单整理AFNetworking架构知识点

其中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表单认证

简单整理AFNetworking架构知识点

NSURLAUthenticatioMethodlnrtifct,适用协议

//ServerTrust认证,适用于任何协议

NSURLAuthenticationMethodserverTrust

简单整理AFNetworking架构知识点

简单整理AFNetworking架构知识点

简单整理AFNetworking架构知识点

AFN 缓存模块对比SD
●AFN图片缓存是设定2个临界值,最大存储值和整理后保留的缓存值。到达最大值则整理最早存入的图片。直到达到整理后需求留存的临界值为止。只以临界值为节点整理。
●SD图片缓存很明显是愿意献身空间来换时间,能多存点就多存点。

青山不改,绿水常流。谢谢我们!