ГОСТ Р 59803—2021
При unicast загрузке от единственного сервера допускается переадресация на альтернативную
загрузку от другого единственного сервера, или от нескольких серверов, или на сеанс загрузки multicast
передачи.
В случае, если параметры загружаемого файла (File-Reference, дайджест MD5 и длина контента)
совпадают с аналогичными параметрами файла, уже находящегося в устройстве хранения, файл не
должен загружаться. Если параметры не совпадают, файл в устройстве хранения HNED будет удален и
будет загружена его новая версия.
Загрузка файла от единственного сервера должна выполняться, если не указана информация о
фрагменте файла при отсутствии параметров длины файла и длины фрагмента или не указано рас
положение сервера (параметр Server-Base-URI).
HNED создает запрос URI на разрешение по ссылке с базовым URI Server-Base-URI произвольно
выбранному серверу из списка анонсированных серверов для файла и взаимосвязанной ссылки File-
Reference и инициирует передачу файла HTTP, используя запрос URI. Если в описании сеанса загрузки
присутствует File-Content-Type, заголовок Accept должен быть включен в запрос с указанным Content-Type.
Сеть CDS (сервер HTTP) может ответить:
- запрошенным файлом;
- запросом переадресации.
- кодом статуса 503 (недоступная служба) и заголовком ответа Retry-After (повторить позже), ко
торый указывает HNED на необходимость повторения первоначального запроса файла через интервал
времени произвольной продолжительности или после даты и времени, предоставленных в заголовке
Retry-After;
- кодом состояния 410. который указывает, что сеанс загрузки заканчивается.
Если сеть CDS (сервер HTTP) не отвечает указанным выше сообщениям, а передает код состо
яния 500 (внутренняя ошибка сервера), то HNED выбирает другой сервер из списка серверов и запу
скает новую загрузку файла. HNED должно продолжать эту процедуру до тех лор. пока запрос не
будет успешным или не будут опробованы все объявленные серверы.
В случае, если серверы отчета приема будут определены в описании сеанса загрузки. HNED
должно выполнять отчет приема, определенный в 4.6.5. после успешной загрузки файла и/или всех
файлов элемента контента.
Загрузка от нескольких серверов должна выполняться, если для определенного файла предо
ставляется информация о фрагменте файла (параметры длины файла и длины строки) и несколько
расположений сервера (параметры Server-Base-URI). HNED произвольным образом распределяет за
грузку отдельных фрагментов файла по серверам, расположения которых предоставлены для данного
файла с учетом доступности фрагментов на отдельных серверах (параметрAvailable-Chunk-List). HNED
должно обеспечить загрузку всех фрагментов файла.
Примечание — Нормирование метода распространения запросов по расположению сервера выходит
за рамки настоящегостандарта.
Для каждого выбранного сервера HNED должно генерировать запрос URI. используя разрешение
по ссылке с базовым URI Server-Base-URI и взаимосвязанной ссылкой File-Reference.
Для каждого фрагмента, который должен быть загружен с сервера. HNED вычисляет диапазон
байтов с учетом постоянной длины блока (параметр File-Chunk-Length) и позиции фрагментов.
Запрос одиночного сервера на unicast загрузку может быть перенаправлен:
- на альтернативную загрузку от единственного сервера;
- загрузку файла от нескольких серверов:
- multicast загрузку.
Сеть CDS предоставляет ответ HNED о режиме переадресации протоколом HTTP, устанавливая
код статуса переадресации Зхх в исходный запрос на предоставление этого режима.
Для переадресации альтернативного файла с единственным сервером сеть CDS должна отвечать
на запрос загрузки файла с кодом состояния 302 (найдено). Новый базовый URI с синтаксисом <http-
server-base-URI> для альтернативного сервера предоставлен полем расположения ответа. Сеть CDS мо
жет дать ответ с заголовком «Retry-After» («повторить позже»), который предписывает HNED выполнение
переадресации с некоторой задержкой во времени или после времени, указанного в этом заголовке.
HNED инициирует загрузку файла единственного сервера после задержки, или времени, опреде
ленного заголовком Retry-After, или немедленно, если этот заголовок не указан. Новый базовый URI. пре
доставленный переадресацией, должен использоваться в качестве новой базы данных Server-Base-URI.
25