MASTG-KNOW-0073 iOS ネットワーク API (iOS Network APIs)

iOS 12.0 以降、Network フレームワークと URLSession クラスはネットワークおよび URL リクエストを非同期および同期でロードするメソッドを提供します。古いバージョンの iOS では Sockets API を利用できます。

Network フレームワーク

Network フレームワークは 2018 年の Apple Worldwide Developers Conference (WWDC) で紹介された、 Sockets API に代わるものです。この低レベルネットワークフレームワークは動的ネットワーク、セキュリティ、パフォーマンスのサポートが組み込まれたデータ送受信のためのクラスを提供します。

Network フレームワークでは引数 using: .tls が使用されている場合、デフォルトで TLS 1.3 が有効になっています。これは従来の Secure Transport フレームワークよりも優先されるオプションです。

URLSession

URLSessionNetwork フレームワーク上に構築されており、同じトランスポートサービスを利用します。また、エンドポイントが HTTPS の場合、このクラスはデフォルトで TLS 1.3 を使用します。

HTTP および HTTPS の接続には Network フレームワークを直接利用するのではなく URLSession を使用すべきです。 URLSession クラスは両方の URL スキームをネイティブにサポートし、そのような接続のために最適化されています。定型コードをあまり必要としないため、エラーの可能性を減らし、デフォルトでセキュアな接続を確保できます。 Network フレームワークは低レベルや高度なネットワーク要件がある場合にのみ使用すべきです。

Apple の公式ドキュメントには Network フレームワークを使用して netcat を実装する 例や、URLSessionウェブサイトのデータをメモリに取り込む 例が掲載されています。

Last updated

Was this helpful?