Ack for Fragment
Ack for Fragment パケットを使用して、クライアントのフラグメント要求を確認します。
reason-code reason-description
BITS-Packet-Type: Ack
BITS-Session-Id: {guid}
BITS-Received-Content-Range: range
BITS-Reply-URL: url
Content-Length: length
BITS-Error-Code: error-code
BITS-Error-Context: error-context
ヘッダー
-
reason-code
-
reason-code を HTTP 理由コードに置き換えます。 次の表は、 Fragment 要求への応答の一般的な理由コードを示しています。 HTTP 理由コードの一覧については、 RFC 2616 を参照してください。
理由コード 説明 200 OK です。 要求は成功しました。 416 Range-Not-Satisfiable。 クライアントは、範囲が前のフラグメントと連続していないフラグメントを送信しました。 -
reason-description
-
reason-description を、理由コードに関連付けられている HTTP 記述に置き換えます。 たとえば、reason-code が 200 の場合は、reason-description を OK に設定します。
-
BITS-Packet-Type
-
この応答パケットを Ack パケットとして識別します。
-
BITS-Received-Content-Range
-
サーバーがクライアントから送信すると想定される次のバイトへの 0 から始まるオフセット。 たとえば、フラグメントに範囲 128 212 が含まれている場合は、範囲を 213 に設定します。
-
BITS-Session-Id
-
クライアントへのセッションを識別する文字列 GUID。 {guid} を、クライアントが フラグメント 要求パケットで送信したセッション識別子に置き換えます。 セッション識別子が認識されない場合は、BITS-Error-Code ヘッダーを BG_E_SESSION_NOT_FOUND に設定します。
-
BITS-Reply-URL
-
アップロード/応答ジョブの応答データの URL を格納します。 アップロードが完了し、必要に応じてサーバー アプリケーションから応答を受け取った後、最後のフラグメント応答にこのヘッダーを含めます。
フラグメント要求の Content-Range ヘッダーを使用して、アップロードが完了したかどうかを判断します。 範囲の値の終了オフセットが、合計長の値から 1 を引いた値と等しい場合、アップロードは完了です。
BITS サーバーは、アップロードが完了したと判断した後、アップロード ファイルをサーバー アプリケーションにポストします。 サーバー アプリケーションによってファイルが処理され、応答が生成されます。 BITS サーバーは、BITS-Reply-URL の値をサーバー アプリケーションからの応答ファイルの URL に設定します。
-
Content-Length
-
length を応答の本文に含まれるバイト数に置き換えます。 応答の本文にコンテンツが含まれていない場合でも、Content-Length が必要です。
-
BITS-Error-Code
-
エラー コードを、サーバー側エラーに関連付けられている HRESULT 値を表す 16 進数に置き換えます。 reason-code が 200 または 201 でない場合にのみ、このヘッダーを含めます。
-
BITS-Error-Context
-
error-context を、エラーが発生したコンテキストを表す 16 進数に置き換えます。 サーバーがエラーを生成 した場合は、BG_ERROR_CONTEXT_REMOTE_FILE (0x5) の 16 進数を指定します。 それ以外の場合は、アップロード ファイルが渡されるアプリケーションによってエラーが生成された場合は、 BG_ERROR_CONTEXT_REMOTE_APPLICATION (0x7 ) の 16 進数を指定します。 理由コードが 200 または 201 でない場合にのみ、このヘッダーを含めます。
注釈
セッションがアップロード/応答ジョブの場合、クライアントがフラグメント応答の最終的な Ack を受信するまでに遅延が発生する可能性があります。 遅延の長さは、サーバー アプリケーション (サーバーがアップロード ファイルを投稿するアプリケーション) が応答の生成に要する時間によって異なります。