我想知道在连接到HTTPS主机时创建多个NSURLSession
对象是否合适?我之所以这样问是因为我应该在初始TLS握手期间评估服务器证书(服务器接受没有证书的客户端),我要去的地方是NSURLSessionDelegate
&# 39; s URLSession:didReceiveChallenge:completionHandler:
。
但这意味着我应该创建一些实现此方法的基类,并在将它们用于URLSession:downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite:
之类的其他方法时从中派生所有未来的委托。
此外,它会产生一些问题,URLSession:didReceiveChallenge:completionHandler:
将为每个NSURLSession
调用{i}},这会产生额外的开销。至于HTTP / 1.1 Connection: keep-alive
应该是默认行为,并且(理想情况下)新创建的NSURLSession
应该使用来自某些连接池的连接。
答案 0 :(得分:0)
我在this技术问答&答案中找到了我的问题的答案:
由于NSURLSession维护了自己的TLS会话缓存...
所以,如果每次执行连接时都不想进行TLS握手,我认为保留一个NSURLSession
会更好。