AFN3.0前后的区别
2021-03-22 本文已影响0人
傲骨天成科技
一、发展历程
- AFNetworking 1.0建立在NSURLConnection的基础API之上。
- AFNetworking 2.0 开始使用NSURLConnection的基础API,以及较新基于NSURLSession的API选项。
- AFNetworking 3.0 现已完全基于NSURLSession的API
二、废弃与新增
废弃:
- AFURLConnectionOperation
- AFHTTPRequestOperation
- AFHTTPRequestOperationManager
依次被下面的三个类代替了,同时增加了一些改变
- AFURLSessionManager
- AFHTTPSessionManager
- AFNetworkReachabilityManager
三、AFNetwokring3.0为何弃用了NSURLConnection?
1.NSURLSession提升了网络连接速度
2015年,RFC文档编号7540正式发表了下一代HTTP协议HTTP/2.0, 它是1999年发布HTTP/1.1以后的首次更新。相对于前一个版本,HTTP/2.0 以快著称。加载同样一张图片,新的协议所用的时间是旧协议的四分之一。
iOS9+,NSURLSession开始正式支持HTTP/2.0 ,意味着网速提高了,设计了更加优秀的API,所以开发者舍弃了NSURLConnection。
2. Session采用了共享,而非每次都新建
共享Session到底给网络连接带来了哪些好处呢?我们先聊一聊网络通讯协议。我们都知道,HTTP协议是基于TCP协议的。所以在每次的HTTP请求之前,客户端和服务端都先需要经过TCP连接的三次握手,即请求之前,网络的数据都已经在客户端和服务端之间来回了三次了,事实上在HTTP/0.9, HTTP/1.0协议的时代,每次HTTP的请求,都需要先经过TCP的连接,而后才开始HTTP的请求。那么,为了让我们的请求更快,避免每次都产生一个TCP三次握手,成了一个优化的选项。于是在HTTP/1.1中共享的Session将会复用TCP的连接,这样就避免了每次操作都开启一个TCP三次握手的时间浪费,即加速了网络请求时间。
通过查看文档,我们可以知道iOS对同一个IP的服务器的最大并发数为4,OSX为6,但是如果没有共享Session,则可能会超过这个数。