NSURLConnectionとNSURLSessionの2つのバージョンを持つバックエンドサーバーと通信するロジックがあります。後者は、NSURLConnectionの使用が推奨されていないために作成されました。また、バックグラウンドのダウンロード機能を活用したいと考えています。これらのクラスは、クライアントを認証するためのクライアント側の証明書をサポートするために作成されています。SSLセッションの共有に関するNSURLSessionとNSURLConnectionの使用
この通信を行うクラスは、アプリケーション全体を通していくつかの異なるタイプのルーチンから呼び出されます。
NSURLSessionバージョンを使用すると、SSL(TLSv1)セッションが再利用されることはなく、[クライアントハロー、サーバーハロー、証明書、証明書、クライアントのフルチェーンが存在することがわかります鍵交換、証明書の検証など]を行います。 「Client Hello」メッセージを見ると、メッセージに「セッションID」がないことがわかります。そのため、SSLセッションが再利用されることはないと思います。
古いNSURLConnectionバージョンでは、セッションが再利用されることが多く、以前のセッションIDが「クライアントのHello」メッセージで示されることがよくあります。
これらの方法では、NSURLConnectionまたはNSURLSessionの新しいインスタンスを作成しています。 NSURLConnectionはアプリケーション全体で動作しますが、NSURLSessionは動作しません。
しかし、私は、SSLセッションがサーバーとクライアントとするたびに送信されていないクライアント証明書の間で共有されるように、私は私のNSURLSessionのロジックを記述する必要があるかを確認していません。私は1つの方法は、単一のNSURLSessionインスタンスを使用するかもしれないと思うが、これが正しいデザインパターンであるかどうかはわかりません。 NSURLSessionで