Разница между Content-Range и Range заголовками? - PullRequest
67 голосов
/ 04 апреля 2009

В чем разница между заголовками HTTP Content-Range и Range? Когда каждый из них должен использоваться?

Я пытаюсь воспроизвести аудиофайл с определенного байтового смещения. Должен ли я использовать Content-Range или Range header?

Спасибо

Ответы [ 2 ]

124 голосов
/ 15 июля 2011

На самом деле принятый ответ неполон. Content-Range используется не только в ответах. Это также законно в запросах, которые предоставляют юридическое лицо.

Например, HTTP PUT предоставляет тело объекта, оно может предоставлять только часть объекта. Таким образом, запрос PUT может включать заголовок Content-Range, указывающий серверу, где частичное тело объекта должно быть объединено с объектом.

Например, давайте сначала создадим, а затем добавим файл, используя HTTP:

Запрос 1:

PUT /file HTTP/1.1
Host: server
Content-Length: 1

a

Запрос 2:

PUT /file HTTP/1.1
Host: server
Content-Range: bytes 1-2/*
Content-Length: 1

a

Как, давайте посмотрим содержимое файла ...

Запрос 3:

GET /file HTTP/1.1
Host: server

HTTP/1.1 200 OK
Content-Length: 2

aa

Это разрешает произвольный доступ к файлам, как READING, так и WRITING через HTTP Я просто хотел уточнить, поскольку я исследовал использование Content-Range в разрабатываемом клиенте WebDAV, поэтому, возможно, эта расширенная информация окажется полезной для кого-то другого.

76 голосов
/ 04 апреля 2009

Диапазон используется в запросе для запроса определенного диапазона (или диапазонов) байтов. Content-Range используется в ответе, чтобы указать, какие байты предоставляет вам сервер (которые могут отличаться от запрошенного вами диапазона), а также продолжительность всего содержимого (если известно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...