Ack for Fragment
使用 Ack for Fragment 数据包来确认客户端的 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
-
将原因代码替换为 HTTP 原因代码。 下表显示了对 Fragment 请求的响应的典型原因代码。 有关 HTTP 原因代码的列表,请参阅 RFC 2616。
原因代码 说明 200 没问题。 请求已成功。 416 Range-Not-Satisfiable。 客户端发送了一个片段,其范围与上一个片段不连续。 -
reason-description
-
将原因说明替换为与原因代码关联的 HTTP 说明。 例如,如果原因代码为 200,请将原因说明设置为“确定”。
-
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。 上传完成后,将此标头包含在最终片段响应中,并且你会收到来自服务器应用程序的响应(如果适用)。
使用片段请求中的 Content-Range 标头来确定上传是否完成。 如果范围值的结束偏移量等于总长度值减一,则上传完成。
BITS 服务器在确定上传完成后将上传文件发布到服务器应用程序。 服务器应用程序处理文件并生成回复。 BITS 服务器将 BITS-Reply-URL 的值设置为服务器应用程序中回复文件的 URL。
-
Content-Length
-
将长度替换为响应正文中包含的字节数。 即使响应正文不包含内容,也需要内容长度。
-
BITS-Error-Code
-
将错误代码替换为十六进制数字,表示与服务器端错误关联的 HRESULT 值。 仅当原因代码不是 200 或 201 时,才包含此标头。
-
BITS-Error-Context
-
将错误上下文替换为表示发生错误的上下文的十六进制数字。 如果服务器生成错误,请为 BG_ERROR_CONTEXT_REMOTE_FILE指定十 六进制数 (0x5) 。 否则,如果上传文件传递到的应用程序生成了错误,则为 BG_ERROR_CONTEXT_REMOTE_APPLICATION 指定十六进制数 (0x7) 。 仅当原因代码不是 200 或 201 时,才包含此标头。
注解
如果会话适用于上传-回复作业,则客户端收到片段响应的最终 Ack 之前可能会有延迟。 延迟的长度取决于服务器应用程序 (发布上传文件) 生成回复所花费的时间。