RFC: 2068
Оригинал: Hypertext Transfer Protocol - HTTP/1.1
Другие версии: RFC 2616
Категория: Предложенный стандарт
Дата публикации:
Авторы: , , , ,
Перевод: Алексей Симонов

14.36.2. Запросы Поиска Range

Запросы поиска HTTP, используя условные или безоговорочные методы GET могут запросить один или более поддиапазонов объекта, вместо всего объекта, используя заголовок запроса Range, который применяется к объекту, возвращенному как результат запроса:

Range = "Range" ":" ranges-specifier

Сервер МОЖЕТ проигнорировать заголовок Range. Однако, HTTP/1.1 серверы происхождения и промежуточные кэши ДОЛЖЕН поддержать диапазоны байта когда возможно, так как Range поддерживает эффективное восстановление от частично неудавшихся передач, и поддерживает эффективный частичный поиск больших объектов.

Если сервер поддерживает заголовок Range и указанный диапазон, или диапазоны соответствуют объекту:

  • Присутствие заголовка Range в безоговорочном GET изменяет то, что возвращено, если GET иначе успешен. Другими словами, ответ несет код состояния 206 (Partial Content) вместо 200 (OK).
  • Присутствие заголовка Range в условном GET (запрос, используя один или оба из If-Modified-Since и If-None-Match, или один или оба из If-Unmodified-Since и If-Match) изменяет то, что возвращено, если GET иначе успешен, и условие истинно. Он не затрагивает 304 (Not Modified), ответ возвратился, если условное выражение — ложь.

В некоторых случаях, он может быть более соответствующим использовать заголовок If-Range (см. раздел 14.27) в дополнение к заголовку Range.

Если прокси, который поддерживает диапазоны, получает запрос Range, перешлите запрос на прибывающий сервер, и получает весь объект в ответ, он ДОЛЖЕН только возвратить запрошенный диапазон его клиенту. Он ДОЛЖЕН хранить весь полученный ответ в его кэше, если это совместимо с его политикой выделения кэша.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.