HTTP: Как мне показать Content-Type и Content-Disposition, когда клиент запрашивает диапазон байтов? - PullRequest
0 голосов
/ 09 сентября 2009

Вчера Я спросил об обслуживании диапазонов байтов из PHP. Сегодня мой вопрос - как мне установить заголовки Content-Type и Content-Disposition при обслуживании нескольких запрошенных диапазонов байтов? Должен ли я повторять их для каждого диапазона байтов или я должен просто выводить их один раз в начале? Или, может быть, я вообще не должен выводить их, потому что клиент уже должен знать, о чем он спрашивает?

Ответы [ 2 ]

1 голос
/ 09 сентября 2009

Посмотрите на RFC 2616 (в частности, разделы 14.16 и 19.2). Если клиент запрашивает один диапазон байтов, ответ должен содержать один диапазон байтов, а значения заголовков Content-Type и Content-Disposition не изменяют поведение (они должны отражать тип обслуживаемого файла). Однако если клиент запрашивает несколько диапазонов байтов в одном запросе, ответ должен использовать взамен Content-Type «multipart / byteranges», и каждая часть внутри тела задает свой собственный заголовок Content-Type.

1 голос
/ 09 сентября 2009

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

Помните, что HTTP не имеет состояния, поэтому каждый ответ должен быть полным и иметь возможность стоять самостоятельно. Если вы обслуживаете байтовые диапазоны, вам действительно следует использовать теги сущностей (ETag); так что нет никаких шансов, что клиент сможет запросить и получить два отдельных байтовых диапазона, которые действительно принадлежат разным ревизиям одного и того же ресурса.

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