Как я могу остановить X-Sendfile от предоставления полного видеофайла, когда IE9 делает запрос?

Я столкнулся с проблемой, когда независимо от установки атрибута предварительной загрузки, когда IE9 отправляет запрос на видео, а видео обслуживается x-sendfile, запрос отображается как ожидающий и сохраняет соединение открытым.

Следовательно, если у вас есть 10 видео, которые пытаются загрузить, IE9 быстро сожрет все доступные соединения, и браузер не сможет делать дальнейшие запросы.

При указании IE9 запросить то же видео у Apache без X-Sendfile, Apache обрабатывает небольшую часть файла как запрос 200. Затем браузер делает запрос позже, когда кнопка воспроизведения нажата, чтобы обслуживать диапазон файла.

Похоже, X-Sendfile заставляет Apache изначально обслуживать весь файл, а не только его часть.

Как я могу сделать запросы X-Sendfile через функцию Apache так же, как и обычный запрос к Apache?

0

Решение

Установка заголовка «Accept-Ranges» как header("Accept-Ranges: bytes"); говорит IE9, чтобы он пытался передавать файл по умолчанию, вместо того, чтобы обслуживать его одним куском.

Рекомендуется проверить, что HTTP-запрос версии 1.1, хотя перед настройкой, так как 1.0 не поддерживает заголовок.

if (isset($_SERVER['SERVER_PROTOCOL']) && $_SERVER['SERVER_PROTOCOL'] === 'HTTP/1.1') {
header("Accept-Ranges: bytes");
}

Я нигде не смог найти никакой документации по этому вопросу, поэтому выкладываю свое решение здесь.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]