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