Почему Firebug показывает ответ 206 Partial Content на запрос загрузки видео?

У меня есть куча видеоэлементов html5 с атрибутом предварительной загрузки, установленным на «авто». Они начинают загружаться нормально, но я думаю, что может быть проблема с их кешированием, потому что каждый раз, когда я перезагружаю страницу (без очистки кеша), они начинают все сначала.

Когда я проверил панель «Сеть» в firebug, я заметил, что все остальное (изображения и файлы) выдавало мне сообщение «304 не изменено», как и предполагалось, в то время как видео (и аудио) файлы выдавали мне сообщение «206 частичное содержимое», в повторяющихся записях.

Ответ «206 частичное содержимое» также появляется в повторяющихся записях, когда страница загружается с очищенным кешем, вместо ответа «200 OK», как можно было бы ожидать.

Это нормальное поведение для видео и аудио элементов? Если нет, то как это можно исправить?


person CCrawler    schedule 18.03.2012    source источник


Ответы (3)


Этот код частичного содержимого (206) может быть отправлен с сервера, когда клиент запрашивает диапазон (например, дайте мне первые 2 МБ видеоданных).

Это жизненно важно для загрузки данных фрагментами, что позволяет избежать извлечения неиспользуемых ресурсов. (Я редко смотрю полное видео онлайн.) Посмотрите на исходящий запрос на заголовок Range.

См. Коды состояния (RFC2616 – HTTP/1.1) (обратите внимание, что любой код 2xx означает успех):

10.2.7 206 Частичное содержание:

Сервер выполнил частичный запрос GET для ресурса. Запрос ДОЛЖЕН включать поле заголовка Range (раздел 14.35), указывающее желаемый диапазон, и МОЖЕТ включать поле заголовка If-Range (раздел 14.27), чтобы сделать запрос условный.

И из раздела Range header:

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

  • Наличие заголовка Range в безусловном GET изменяет то, что возвращается, если GET в остальном успешен. Другими словами, ответ содержит код состояния 206 (Частичное содержание) вместо 200 (ОК).

Однако я не понимаю тонкостей кэширования и/или ETag или чего ожидать от FireFox.

person Community    schedule 18.03.2012

В firefox на моем локальном компьютере для разработки я не мог воспроизвести видео .webm, если только сервер не был настроен для их использования. Firebug покажет 206, но ничего не покажет. Это можно решить, добавив

AddType video/webm .webm

к вашему .htaccess.

person Titan    schedule 08.10.2013

Согласно https://httpstatuses.com/206

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

Когда генерируется составная полезная нагрузка ответа, серверу СЛЕДУЕТ отправлять части в том же порядке, в котором соответствующая спецификация диапазона байтов появилась в полученном поле заголовка Range, исключая те диапазоны, которые были сочтены неудовлетворительными или которые были объединены в другие диапазоны. Клиент, который получает составной ответ, ДОЛЖЕН проверить поле заголовка Content-Range, присутствующее в каждой части тела, чтобы определить, какой диапазон содержится в этой части тела; клиент не может рассчитывать на получение тех же диапазонов, которые он запросил, и того же заказа, который он запросил».

person bowen wang    schedule 01.06.2017