ios9之后,NSURLSession自动支持HTTP2.0
HTTP/2 有什么改进 :
- 一个TCP连接能发起多个HTTP请求
- 实现完全多路复用, 意味着一个新的请求不用等到上一个请求得到响应之后再发出
- 有请求优先级, 所以能把重要的资源优先提供给拥有更高权限的客户端.
- 使用二进制分帧, 使得数据的处理和解析速度更快.
- HTTP/2自动支持HTTPS, 意味着HTTP/2是安全的
- 支持服务器自推送
- 使用HPACK头压缩技术
使用一个静态表和一个动态表
静态表包含最常用的HTTP信息头, 并且不可修改
包含在静态表中的信息头可以动态添加到动态表中, 动态表中的信息头通过指针引用静态表中的信息
使用方法
- 使用NSURLSessionStreamTask进行读写
- 使用NSURLSessionTaskMetrics进行统计
- NSURLSessionTaskDelegate代理中新增一个方法,当收集完成的时候就会调用该方法。
- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didFinishCollectingMetrics:(NSURLSessionTaskMetrics *)metrics