Разница между заголовками Content-Range и Range?

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

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

Спасибо

Ответ 1

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

Ответ 2

Собственно, принятый ответ не является полным. 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: 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, который я разрабатываю, поэтому, возможно, эта расширенная информация окажется полезной для кого-то еще.