既然有了NSURLConnection,为什么还要出个NSURLSession

HTTP /2, 2015年5月RFC 7540正式发表的下一代HTTP协议,是1999年来HTTP 1.1发布后的首个更新。相对于前一个版本,HTTP /2以快著称。
根据2015的WWDC Session711,我们知道iOS9+,NSURLSession开始正式支持HTTP /2,也就意味着你的网络连接速度也可以有如上图那样的提升。

我们先来聊聊网络的通讯协议。我们也都知道,HTTP协议是基于TCP协议的。所以在每次的HTTP请求之前,客户端和服务器端,都先需要经过TCP连接的三次握手,即每次请求之前,网络的数据都已经在客户端和服务器端之间来回了三次;

事实上在HTTP 0.9, HTTP 1.0协议的时代,每次HTTP的请求,都需要先经过TCP的连接,然后才开始HTTP的请求;

为了让我们的请求更快,避免每次都产生一个TCP三次握手,成了一个优化的选项。于是在HTTP 1.1中,出现了Connection: keep-alive这个选项。这个优化选项,可以使得客户端和服务器端复用一个TCP连接,从而减小每次的网络请求时间;

聊到这里,本章提出的问题,其实答案已经逐渐明了了。没错,共享的Session将会复用TCP的连接,而每次都新建Session的操作将导致每次的网络请求都开启一个TCP的三次握手。

你可能感兴趣的:(既然有了NSURLConnection,为什么还要出个NSURLSession)