片段的确认

使用 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 原因代码。 下表显示了响应 片段 请求的典型原因代码。 有关 HTTP 原因代码的列表,请参阅 RFC 2616

原因代码 说明
200
没问题。 请求已成功。
416
Range-Not-Satisfiable。 客户端发送了一个片段,其范围与上一个片段不连续。

reason-description

将 reason-description 替换为与原因代码关联的 HTTP 说明。 例如,如果 reason-code 为 200,请将 reason-description 设置为 OK。

BITS-Packet-type

将此响应数据包标识为 Ack 数据包。

BITS-Received-Content-Range

服务器希望客户端发送的下一个字节的从零开始的偏移量。 例如,如果片段包含范围 128 212,则可以将范围设置为 213。

BITS-Session-Id

标识客户端会话的字符串 GUID。 将 {guid} 替换为客户端在 片段 请求数据包中发送的会话标识符。 如果无法识别会话标识符,请将 BITS-Error-Code 标头设置为 BG_E_SESSION_NOT_FOUND。

BITS-Reply-URL

包含上载-答复作业的回复数据的 URL。 上传完成后,将此标头包含在最终片段响应中,并收到来自服务器应用程序的响应(如果适用)。

使用 Fragment 请求中的 Content-Range 标头确定上传是否完成。 如果范围值的结束偏移量等于总长度值减 1,则上传完成。

BITS 服务器在确定上传完成之后将上传文件发布到服务器应用程序。 服务器应用程序处理文件并生成回复。 BITS 服务器将 BITS-Reply-URL 的值设置为服务器应用程序中回复文件的 URL。

Content-Length

将 length 替换为响应正文中包含的字节数。 即使响应正文不包含内容,也需要 Content-Length。

BITS-Error-Code

将错误代码替换为表示与服务器端错误关联的 HRESULT 值的十六进制数。 仅当原因代码不是 200 或 201 时,才包含此标头。

BITS-Error-Context

将 error-context 替换为表示发生错误的上下文的十六进制数。 如果服务器生成了错误,请指定 BG_ERROR_CONTEXT_REMOTE_FILE (0x5) 的十六进制数。 否则,如果错误是由上传文件传递到的应用程序生成的,则指定 BG_ERROR_CONTEXT_REMOTE_APPLICATION (0x7) 的十六进制数。 仅当原因代码不是 200 或 201 时,才包含此标头。

备注

如果会话用于上传-答复作业,则客户端在收到 片段的最终 Ack 响应之前可能会有延迟。 延迟的长度取决于服务器应用程序 (应用程序的时间,服务器将上传文件发布到) 生成回复所花费的时间。

另请参阅

创建会话

Fragment