AFNetworking3.0为何弃用了NSURLConnection
http://blog.csdn.net/qq_34101611/article/details/51698524
上篇博客说到AFNetworking3.0只提供了NSURLSession的支持。其实,NSURLSession在iOS7.0被Apple提出后,苹果就对其良好的API设计大力推崇,认为NSURLSession是Foundation中网络的未来,并且是一个美好的未来。然而它的使用效果似乎一直都和NSURLConnection不相伯仲,业界也认为NSURLConnection 不会被弃用,今后一段时间应该也不会。
然而最终NSURLConnection还是被弃用了,为了迎合iOS新版本的升级, AFNetworking在3.0版本中删除了基于 NSURLConnection API的所有支持。那么NSURLSession凭借怎样的优势能将非常好用的NSURLConnection取而代之呢?
一、NSURLSession提升了网络连接速度
2015年,RFC文档(RFC文档是一系列关于Internet的技术资料汇编,早期为ARPANET)编号7540正式发表了下一代HTTP协议HTTP/2,是1999年发布HTTP/1.1以来的首个更新。相对于前一个版本,HTTP/2以快著称。加载同样一张图片,新的协议所用时间是旧协议的四分之一。
根据2015的WWDC Session711,我们知道iOS9+,NSURLSession开始正式支持HTTP/2,也就意味着你的网络连接速度可以提升不少。更人性化更优秀的API设计,HTTP/2的支持,成为了开发者摒弃NSURLConnection的理由。
二、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,则可能会超过这个数。
AFNetworking3.0为何弃用了NSURLConnection的更多相关文章
- AFNetworking3.0的基本使用方法
前一段时间在做项目的时候发现AFNetworking3.0已经被大众所接受,所以以后肯定会有很多程序猿朋友必须了解和转移至3.0了,这是我这段时间使用和学习总结出来的一些常用的知识点,希望对大家有用. ...
- IOS 网络浅析-(十一 三方 AFNetworking3.0简介)
AFNetworking3.0是目前最新的版本,本来打算介绍一下2.6,但是想想2.6名不久矣,就决定不介绍了,有兴趣的小伙伴可以上网查一查.下面我就开始进入正题了. 目前使用人数最多的第三方网络库, ...
- 网络婚礼之AFNetWorking3.0
目前使用人数最多的第三方网络库,没有之一.从开始的NSURLConnection到现在的NSURLSession,它都一直保持着与苹果的步调一致,而由它也衍生出大量的相关第三方网络功能库,不仅仅因为他 ...
- iOS开发--基于AFNetWorking3.0的图片缓存分析
图片在APP中占有重要的角色,对图片做好缓存是重要的一项工作.[TOC] 理论 不喜欢理论的可以直接跳到下面的Demo实践部分 缓存介绍 缓存按照保存位置可以分为两类:内存缓存.硬盘缓存(FMDB.C ...
- 基于AFNetworking3.0网络封装
概述 对于开发人员来说,学习网络层知识是必备的,任何一款App的开发,都需要到网络请求接口.很多朋友都还在使用原生的NSURLConnection一行一行地写,代码到处是,这样维护起来更困难了. 对于 ...
- iOS_SN_基于AFNetworking3.0网络封装
转发文章,原地址:http://www.henishuo.com/base-on-afnetworking3-0-wrapper/?utm_source=tuicool&utm_medium= ...
- 【转载】基于AFNetWorking3.0的图片缓存分析
原文出处: Yasin的简书 理论 不喜欢理论的可以直接跳到下面的Demo实践部分 缓存介绍 缓存按照保存位置可以分为两类:内存缓存.硬盘缓存(FMDB.CoreData…).我们常说的网络请求缓存包 ...
- iOS 适配https(AFNetworking3.0为例)
众所周知,苹果有言,从2017年开始,将屏蔽http的资源,强推https楼主正好近日将http转为https,给还没动手的朋友分享一二 1.准备证书 首先找后台要一个证书(SSL证书,一般你跟后台说 ...
- iOS- 利用AFNetworking3.0+(最新AFN) - 实现文件断点下载
官方建议AFN的使用方法 0.导入框架准备工作 •1. 将AFNetworking3.0+框架程序拖拽进项目 •2. 或使用Cocopod 导入AFNetworking3.0+ •3. ...
随机推荐
- /var/lib/mysql/mysql.sock错误的解决办法
问题描述: 使用mysql -uroot -p登录出现找不到 /var/lib/mysql/mysql.sock或者被使用的问题. 可以用如下命令登录:mysql -p --socket=/tmp/m ...
- Net Protocol Related
Data used to deliver through net should be encapsulated. General encapsulation include 4 layer of he ...
- Loadrunner性能测试分类详(二)
一.基准测试 有基础的标准,这样能通过对比发现系统的不同点与变化. 1.可以再指定的标准下通过基准测试建立一个性能基准,这样以后当系统的环境.参数发生变化后,再进行一次相同标准下的测试,即可看出变化对 ...
- AutoTile 自动拼接(五) 学习与实践
今天不讲 权值检索,考虑到后期 自动拼接 做出来 更好玩,操作更方便.所以 今天我 补充一节, 网格计算与操作. 具体就是这么个效果,和地图编辑器一样,不过图块还是没有自然的拼接,这个一定一定是 下一 ...
- Sublime Text 最佳插件列表
http://blog.jobbole.com/79326/ 推荐!Sublime Text 最佳插件列表 2014/07/25 · 工具与资源 · 26.1K 阅读 · 2 评论 · Sublime ...
- struts2语法--error页面如何捕获?
如果地址栏输入了不带后缀或者action为后缀, 不存在的页面跳转到error.jsp: struts.xml配置" <package name="default" ...
- C#入门经典(第五章-2)字符串的处理
- zf-中间库(xzfw_xzjc_jianshi)
比如说 xzfw_xzjc_jianshi 就是 建始的 一个中间库 这个(zwfw)是有个触发器,将数据交换到中间库xzfw_xzjc_jianshi 这个中间库 老版本没有交换工具,将数据交换到监 ...
- offsetXXX和scollXXX的一些操作
<!doctype html><html><head><meta charset="utf-8"><title>offs ...
- 词链(link)
词链(link) 题目描述 给定一个仅包含小写字母的英文单词表,其中每个单词最多包含50个字母.如果一张由一个词或多个词组成的表中,每个单词(除了最后一个)都是排在它后面的单词的前缀,则称此表为一个词 ...