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 . Продолжительность задержки зависит от того, сколько времени серверное приложение (приложение, в которое сервер отправляет файл отправки) для создания ответа.