Поделиться через


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. В следующей таблице показаны типичные коды причин для ответа на запрос фрагмента . Список кодов причин HTTP см. в статье RFC 2616.

Код причины Описание
200
Все в порядке. Запрос выполнен успешно.
416
Диапазон не удовлетворяется. Клиент отправил фрагмент, диапазон которого не является смежным с предыдущим фрагментом.

описание причины

Замените reason-description описанием HTTP, связанным с кодом причины. Например, задайте для параметра reason-description значение ОК, если аргумент reason-code имеет значение 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-адреса файла ответа из серверного приложения.

Длина содержимого

Замените length числом байтов, включенным в текст ответа. Content-Length является обязательным, даже если текст ответа не содержит содержимого.

BITS-error-Code

Замените код ошибки шестнадцатеричным числом, представляющим значение HRESULT, связанное с ошибкой на стороне сервера. Этот заголовок следует включать только в том случае, если аргумент reason-code не равен 200 или 201.

Bits-Error-Context

Замените error-context шестнадцатеричным числом, представляющим контекст, в котором произошла ошибка. Укажите шестнадцатеричное число для BG_ERROR_CONTEXT_REMOTE_FILE (0x5), если сервер создал ошибку. В противном случае укажите шестнадцатеричное число для BG_ERROR_CONTEXT_REMOTE_APPLICATION (0x7), если ошибка была создана приложением, которому передается файл отправки. Этот заголовок следует включать только в том случае, если аргумент reason-code не равен 200 или 201.

Комментарии

Если сеанс предназначен для задания отправки и ответа, может возникнуть задержка, прежде чем клиент получит окончательный ответ Ack for Fragment . Продолжительность задержки зависит от того, сколько времени серверное приложение (приложение, в которое сервер отправляет файл отправки) для создания ответа.

См. также раздел

Создание сеанса

Fragment