Chrome не делает дополнительный запрос на поиск видеофайла

Я пытаюсь добиться псевдопотока, у меня есть html так:

<video src="GetVideo.ashx?id=mp4" controls></video>

после загрузки страницы Chrome 28.0.1500.72 m отправляет запрос (даже до нажатия кнопки воспроизведения):

GET /GetVideo.ashx?id=mp4 HTTP/1.1
Host: localhost
Connection: keep-alive
Accept-Encoding: identity;q=1, *;q=0
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.72 Safari/537.36
Accept: */*
Referer: http://localhost/JWPlayerTestMp4Proper.aspx
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
Cookie: jwplayer.volume=12
Range: bytes=0-

И сервер отвечает

HTTP/1.1 206 Partial Content
Cache-Control: private
Content-Length: 5186931
Content-Type: video/mp4
Content-Range: bytes 0-5186930/5186931
Accept-Ranges: bytes
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 22 Jul 2013 08:13:28 GMT

Файл начинает воспроизводиться после нажатия кнопки воспроизведения, но проблема в том, что если я пытаюсь найти еще не загруженную часть, он не отправляет дополнительный запрос для этой части, а просто ждет, пока файл будет загружен в указанную позицию.

Когда я делаю то же самое в Firefox 22.0: первый запрос (после загрузки страницы):

GET http://localhost/GetVideo.ashx?id=mp4 HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Range: bytes=0-
Referer: http://localhost/JWPlayerTestMp4Proper.aspx
Connection: keep-alive

первый ответ (он такой же, как для Chrome):

HTTP/1.1 206 Partial Content
Cache-Control: private
Content-Length: 5186931
Content-Type: video/mp4
Content-Range: bytes 0-5186930/5186931
Accept-Ranges: bytes
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 22 Jul 2013 08:28:19 GMT

второй запрос (после поиска еще не загруженной части):

GET http://localhost/GetVideo.ashx?id=mp4 HTTP/1.1
Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:22.0) Gecko/20100101 Firefox/22.0
Accept: video/webm,video/ogg,video/*;q=0.9,application/ogg;q=0.7,audio/*;q=0.6,*/*;q=0.5
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Range: bytes=2490368-
Referer: http://localhost/JWPlayerTestMp4Proper.aspx
Connection: keep-alive

второй ответ:

HTTP/1.1 206 Partial Content
Cache-Control: private
Content-Length: 2696563
Content-Type: video/mp4
Content-Range: bytes 2490368-5186930/5186931
Accept-Ranges: bytes
Server: Microsoft-IIS/8.0
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 22 Jul 2013 08:35:34 GMT

IE 10 работает так же, как Firefox.

Какой заголовок ответа Chrome ожидает, что он сможет вести себя так же - делать дополнительные запросы после поиска незагруженной части?


person MnZrK    schedule 22.07.2013    source источник


Ответы (1)


Оказалось, что заголовок ответа был правильным. Проблема заключалась в том, что я использовал видеофайл небольшой длины, а в Chrome, похоже, есть какая-то оптимизация, которая не отправляет дополнительный запрос, если разница во времени слишком мала (менее 30 секунд или около того).

person MnZrK    schedule 25.07.2013