.NET Framework のネットワーク操作の基礎

更新 : 2007 年 11 月

Microsoft .NET Framework には、アプリケーションにすばやく簡単に統合できる、複数層の拡張可能なインターネット サービスのマネージ実装が用意されています。これらのクラスを使用するには、名前を完全修飾するか、または、関係するコードの先頭に 1 つまたは複数の Imports ステートメントを記述して、適切な名前空間をインポートする必要があります。詳細については、「Imports ステートメント (.NET 名前空間および型)」を参照してください。

インターネット リソースへのアクセス

要求/応答モデルでインターネット リソースにアクセスするには、3 つの情報が必要です。これらは、それぞれ固有の .NET Framework クラスとして用意されています。

  • Uri クラスには、インターネット リソースの URI (Uniform Resource Identifier) が格納されています。URI は、少なくとも 3 つの部分で構成され、場合によっては 4 つになります。具体的には、通信プロトコルを識別するスキーム識別子、サーバー識別子、パス識別子、および省略可能なクエリ文字列の 4 つです。

  • WebRequest クラスには、リソースに対する要求が格納されています。

  • WebResponse クラスは、受け取る応答用のコンテナです。

データのアップロードとダウンロード

インターネット リソースに対して単純な要求を行う必要があるアプリケーションについては、データをアップロードまたはダウンロードするためのメソッドが WebClient クラスに用意されています。WebClientWebRequest クラスを使用してインターネット リソースへのアクセスを実現するので、登録されているプラグ可能なプロトコルはどれでも使用できます。

System.Net.Sockets 名前空間には、要求/応答モデルを使用しないアプリケーションやネットワークに対して待機する必要があるアプリケーション用として、TcpClientTcpListener、および UdpClient の各クラスが用意されています。これらのクラスは、さまざまなトランスポート プロトコルを使用して接続のための詳細を処理し、ネットワーク接続をストリームとしてアプリケーションに公開します。

詳細については、「データの要求」を参照してください。

次の表は、インターネット リソースに対するデータ要求に関する一般的なタスクの一覧です。

目的

参照項目

インターネット要求を作成する。

インターネット要求の作成

ネットワークにデータを送信する。

ネットワークでのストリームの使用

インターネット リソースに対して非同期の要求を行う。

非同期要求の作成

HTTP 固有のプロパティにアクセスする。

HTTP

特定の要求を接続プールに関連付ける。

接続のグループ化

プロキシ インスタンスを構成する。

プロキシによるインターネット アクセス

インターネット リソースに対して非同期の要求を行う。

非同期要求の作成

TCP を使用してデータを要求する。

TCP サービスの使用

UDP を使用してデータを要求する。

UDP サービスの使用

プラグ可能なプロトコル

WebRequest 抽象クラスと WebResponse 抽象クラスは、プラグ可能なプロトコルの基本クラスです。WebRequest クラスと WebResponse クラスからプロトコル固有のクラスを派生することで、使用するプロトコルを指定せずに、インターネット リソースからのデータを要求し、応答を読み取ることができます。

詳細については、「プラグ可能なプロトコルのプログラミング」を参照してください。

次の表は、プラグ可能なプロトコルに関する一般的なタスクの一覧です。

目的

参照項目

WebRequest を派生する。

WebRequest からの派生

WebResponse を派生する。

WebResponse からの派生

プロトコル固有のプロパティにアクセスする。

方法 : WebRequest を型キャストしてプロトコル固有のプロパティにアクセスする

ネットワークのトレース

ネットワークのトレースでは、メソッド呼び出しについての情報、およびマネージ アプリケーションによって生成されるネットワーク トラフィックについての情報にアクセスできます。この機能は、開発中のアプリケーションのデバッグや、配置済みのアプリケーションの分析に役立ちます。ネットワークのトレースの出力は、開発時および稼動環境でのさまざまな使用方法をサポートするようにカスタマイズできます。

詳細については、「ネットワークのトレース」を参照してください。

次の表は、ネットワークのトレースに関する一般的なタスクの一覧です。

目的

参照項目

ネットワークのトレースを有効にする。

ネットワーク トレースの有効化

トレース情報を読み取る。

ネットワーク トレースの解釈

ネットワークのトレースを構成する。

方法 : ネットワーク トレースを構成する

キャッシュ管理

キャッシュとは、アプリケーションによって要求されたリソースの一時的なストレージです。アプリケーションが、同じリソースを 2 回以上要求した場合、そのリソースをキャッシュから返すことができます。これにより、同じリソースをサーバーに再度要求するというオーバーヘッドを避けることができます。

要求されたリソースのキャッシュ コピーで要求を満たせるかどうかの判断は、キャッシュ ポリシーによって定義した規則に基づいて行われます。

詳細については、「ネットワーク アプリケーションのキャッシュ管理」を参照してください。

次の表は、キャッシュ管理に関する一般的なタスクの一覧です。

目的

参照項目

位置ベースのキャッシュ ポリシーを設定する。

方法 : 場所ベースのキャッシュ ポリシーをアプリケーションに対して設定する

既定の時間ベースのキャッシュ ポリシーを設定する。

方法 : 既定の時間ベースのキャッシュ ポリシーをアプリケーションに対して設定する

時間ベースのキャッシュ ポリシーをカスタマイズする。

方法 : 時間ベースのキャッシュ ポリシーをカスタマイズする

要求に対してキャッシュ ポリシーを設定する。

方法 : 要求に対するキャッシュ ポリシーを設定する

セキュリティ

System.Net クラスには、インターネット アプリケーションで共通で使用される認証機構のサポートや .NET Framework のコードアクセス許可のサポートが組み込まれており、インターネット アプリケーション用にセキュリティ保護された環境を提供します。

詳細については、「System.Net クラスのベスト プラクティス」を参照してください。

次の表は、セキュリティに関する一般的なタスクの一覧です。

目的

参照項目

HTTP サーバーに対して SSL (Secure Sockets Layer) 接続を使用する。

SSL (Secure Sockets Layer) の使用

HTTP 認証メソッドを使用して、HTTP サーバーに対し、認証された接続を確立する。

インターネット認証

インターネット接続を使用するアプリケーションにコード アクセス セキュリティを設定する。

Web アクセス許可とソケット アクセス許可

基本認証およびダイジェスト認証を使用する。

基本認証とダイジェスト認証

NTLM 認証および Kerberos 認証を使用する。

NTLM 認証と Kerberos 認証

System.Net を使用して XML Web サービスをセキュリティ保護する。

ASP.NET を使用して作成した XML Web サービスのセキュリティ

参照

概念

System.Net クラスのベスト プラクティス

インターネット アプリケーションの構成

参照

System.Net

System.Net.Sockets

その他の技術情報

ネットワーク プログラミング

Visual Studio のネットワークの名前空間