美文网首页
NSURLSession:New Features and Be

NSURLSession:New Features and Be

作者: 一个人的思考 | 来源:发表于2016-09-09 14:44 被阅读149次

    session 711

    • 今天我们主要了解下NSURLSession 在iOS10中的新变化,以及我们怎么样更好的使用他。
    • 主要分为3点:
      • iOS10中API做了对应的拓展,丰富了功能。
      • 聊聊安全性相关内容
      • 开发者如何更优雅地使用

    1.API拓展

    1.0 历史

    • 在了解最新的API的时候,我们还是需要关注下我们高级网络API的一些历史。
    API对比
    • 如图,在iOS7之前,我们一直使用的是NSURLConnection 作为网络请求的一大利器。随着时代的发展,我们需要保证网络数据的更好的使用。在13年的WWDC中,我们正式推出NSURLSession API保证使用。在经历了两个的过渡期,我们在15年把NSURLConnection正式否定。在此希望大家更好的使用NSURLSession。

    1.1 NSURLSession的优点

    • 它遵循了HTTP/1.1,SPDY,HTTP/2协议,基本覆盖了所有网络请求。
    • 使用App Transport Security(ATS),保证请求的安全性。必须使用HTTPs
    • HTTP Strict Transport Security(HTST),保证数据传输过程安全
    • 不仅如此,在Cache,cookies,proxy,authentication 都进行了完善。

    1.2 NSURLSession使用

    • 首先要知道的是,NSURLSessionConfiguration
      • configuration 可以设置请求的网络环境,(WIFI,移动数据)
      • 多样的传输类型设置:视频,音频,文本等数据
      • 缓存规则
      • cookie 规则
      • 存储空间大小的设置
      • 请求超时时间设置
         NSURLSessionConfiguration *congfiguration = [NSURLSessionConfiguration defaultSessionConfiguration];
        
        NSURLSession *session = [NSURLSession sessionWithConfiguration:congfiguration];
        NSString *url = @"https://www.cloudoc.com";
        
        NSURLSessionTask *task = [session dataTaskWithURL:[NSURL URLWithString:url] completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            
        }];
        
        [task resume];
    
    • 注意:我们不要每个session 对应一个task请求,而是可以一对多的形式,保证高效实用。
    Tips

    2.0 HTTP/2 的介绍

    • 关于HTTP/2 我们知道多少。
    • 异步连接多路复用;
    • 头部压缩;
    • 请求/响应管线化;
    • 多路复用请求;
    • 对请求划分优先级;
    • 压缩HTTP头;
    • 服务器推送流(即Server Push技术);

    2.1 Server Push

    • 放置网络重复请求
    • 服务器需要支持http2.0协议
    • 最重要的是:直接适用于NSURLSession 客户端不用做任何处理
    HTTP1.1

    上图简单展示了一次HTTP1.1的请求。看以看到在每次请求的过程中都需要跟服务器进行一次通讯。从而延长的所有请求结束的时间。

    HTTP2.0

    在使用了server Push 的HTTP2.0会进一步缩短请求时间,并且可以看到服务器会一次性将所有数据都返回,从而,获取数据的时间得到了缩短。
    提高了网络的利用率。

    3.0 Network statistics

    • iOS10中新增对网络请求检测的API ,保证网络请求的准确。
    • 主要有以下几个特质:
      • 监测弱网环境
      • 监测网络连接
      • apple 全平台通用

    3.1 API

    • 主要有3个属性
      • 1.taskInterval 链接时长
      • 2.redirectCount 重连次数
      • 3.transactionMetrics

    3.2 NSURLSessionTaskTransactionMetrics

    • 主要使用这个API获取每个阶段的网络请求时常,等数据,来分析对应的网络请求。
      下图就是简单的一次网络请求的需要的每一步分解。
    HTTP请求

    4.0 网络安全性

    • 对传输数据进行加密
    • 不要在使用RC4加密算法(已经被公开)
    • 测试 $nucurl https://你的网址;
    • $nucurl —enable-rc4 https://你的网址
    • (iOS10最新的对网络安全访问)App Transport Security
    • 两个字段需要更新 NSAllowsArbitraryLoadsInWebContent(wkwebView)
      NSRequiresCertificateTransparency

    相关文章

      网友评论

          本文标题:NSURLSession:New Features and Be

          本文链接:https://www.haomeiwen.com/subject/pkieettx.html