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. ...
随机推荐
- linux命令-sed,uniq,cut,wc
sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 ...
- CentOS下Samba服务器的配置
主要用途: 在两台计算机间共享文件.打印机 安装: yum install samba 启动服务: /etc/rc.d/init.d/smb start 添加用户 (必须是系统中真实存在的用户) s ...
- MFC添加背景图片三种方法
方法一: 1.声明成员变量CBrush m_brush;2.在InitDialog中添加代码: ? CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1); //IDB_B ...
- Ubuntu 12.04和Windows 7双系统安装图解
http://wenku.baidu.com/link?url=PZlnNOhY0SjHDW-teFFnCMzPYJVjx7vj6yWY-o5HHFLuFqhLI4uFcQVu_y0_6i7vpSnz ...
- 解决 Oracle 11g 不能导出空表的问题
--解决 Oracle 11g 不能导出空表的问题 --执行下面语句,查询数据库中的空表,同时产生分配空间.把生成的结果复制出来并执行. select 'alter table '||table_na ...
- mongodb综述
摘要:mongodb相对于mysql的优势在于性能和分布式扩展方面
- STL笔记之【map之移除元素】
//---------------------------------------------------------// 移除map中满足条件的元素//----------------------- ...
- Xcode如何简单安装Alcatraz
1.最简单直接,直接到github获取该项目 地址:www.github.com,搜索Alcatraz: 2.通过Xcode打开该项目,编译success后,退出Xcode,再启动,再弹出框选择loa ...
- 从零深入 tomcat
1.tomcat的安装使用 tomcat是实现了J2EE标准的最简单轻巧的WEB服务器,所以使用tomcat必须安装JDK咯! ① 安装JDK并设置环境变量: ②设置tomcat的环境变量: 这两小步 ...
- 使用GDB调试Android NDK native(C/C++)程序-转
最 近写了些需要跨平台兼容的C++库,Android是其中需要兼容的平台之一.区别于Windows,Mac中功能强大的IDE环境,官方并没有为 Android ndk提供太多的支持.因此,尝试了下通过 ...