Частичный запрос контента в Google Chrome

Есть много сообщений о проблемах с частичным содержимым в Chrome. Но я действительно застрял, и любое предложение пока мне не помогает. Вот моя проблема:

ENV:

  1. На стороне сервера используйте Node с MongoDB и храните файлы в mongo. Я использую GridFS для загрузки файлов и отправки их клиенту.
  2. Я использую Nginx в качестве веб-сервера

У меня есть тег, и мне нужно, чтобы видео зацикливалось на клиенте. Что я обнаружил, что Chrome отправляет запрос диапазона на сервер:

GET /54c4d7c6849b10b54af4ac23.mp4 HTTP/1.1
Host: xxxx.com
Connection: keep-alive
Accept-Encoding: identity;q=1, *;q=0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.115 Safari/537.36
Accept: */*
Referer: https://www.xxxx.com/en-GB/
Accept-Language: en-US,en;q=0.8
Cookie: _ga=GA1.2.1593613130.1422274087
Range: bytes=26104-3116024

Этот запрос я обрабатываю в gridFS и отвечаю следующим частичным содержанием:

HTTP/1.1 206 Partial Content
Server: nginx/1.6.2
Date: Mon, 23 Feb 2015 13:47:48 GMT
Content-Type: video/mp4
Content-Length: 3089921
Connection: keep-alive
Content-Range: bytes 26104-3116024/3116025
Accept-Ranges: bytes
Cache-Control: no-cache

Но после этого Chrome перестает показывать видео. Что там не так? Могу ли я что-то пропустить в заголовке ответа?


person Alexander Ustinov    schedule 23.02.2015    source источник
comment
Есть ли возможность, что вы дадите нам URL вашей страницы (сайта), чтобы протестировать его? И была ли у вас такая же проблема в других браузерах?   -  person akmozo    schedule 23.02.2015


Ответы (1)


Проблема решена К сожалению, Chrome не очень подробно описывает, что происходит в запросе/ответе. Проблема в том, что размер имеет значение, на самом деле. Когда размер, указанный в заголовке, отличается от фактического размера содержимого. хром просто бросить его без причины. Чтобы определить это, я настроил Fiddler и обнаружил, что моя gridFS отправляет неправильный размер части файла. Обновление Gridfs до последней версии 1.0.1 решает эту проблему.

person Alexander Ustinov    schedule 24.02.2015
comment
Кажется, это причина, по которой он не работает в Chrome при использовании Content-Range с аудиофайлами - stackoverflow.com/questions/53226595/ - person loretoparisi; 09.11.2018