片段的确认
使用 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 响应之前可能会有延迟。 延迟的长度取决于服务器应用程序 (应用程序的时间,服务器将上传文件发布到) 生成回复所花费的时间。