web-dev-qa-db-ja.com

マルチパートプロトコルとチャンクプロトコルの違い

一部の専門家は、2つの違いを説明できますか?チャンクはストリーミングプロトコルであり、マルチパートはそうではないというのは本当ですか?マルチパートを使用する利点は何ですか?

18
user776635

より直感的に、

チャンキングは、サーバーからクライアントに単一のメッセージを送信する方法です。サーバーは、応答全体が生成されるのを待つ必要はありませんが、使用可能なときにピース(チャンク)を送信できます。現在、これはデータ転送レベルで発生し、クライアントには気づかれません。適切には、それは「転送エンコーディング」タイプです。

マルチパートはアプリケーションレベルで発生し、アプリケーションロジックレベルで解釈されます。ここで、サーバーは、コンテンツが1つの応答本文であっても、論理部分が異なり、それに応じて解析できることをクライアントに通知しています。繰り返しますが、これはクライアントが知っているはずの「Content-Type」の設定です。

転送はコンテンツタイプに関係なくチャンク化できるため、マルチパートhttpメッセージは、必要に応じてサーバーによるチャンク化エンコーディングを使用して転送できます。

16
jayadev

どちらもプロトコルではありません。 HTTPがプロトコルです。実際、HTTPのPはプロトコルを表します。

チャンクおよびマルチパートの詳細については、 Hypertext Transfer Protocol 1.1 を参照してください。

チャンクは、セクション3.6転送コーディングにある転送コーディングです。

マルチパートは、3.7メディアタイプのサブセクション3.7.2マルチパートタイプにあるメディアタイプです。

チャンクは、メッセージの長さを事前に決定できない場合(主に動的コンテンツを配信する場合)にチャンクを使用する必要があるため、4.4で指定されているコンテンツの長さなどのプロトコルの他の側面にも影響します。

14.41から(Transfer-Encodingヘッダーフィールド)

Transfer-Encodingのgeneral-headerフィールドは、送信者と受信者の間でメッセージを安全に転送するために、メッセージ本文に適用された変換のタイプ(存在する場合)を示します。これは、転送コーディングがエンティティではなくメッセージのプロパティであるという点で、コンテンツコーディングとは異なります。

より簡単に言えば、チャンクはデータのブロックを転送する方法であり、マルチパートはデータの形状です。

9
doog abides