Chrome на Android выдает запрос двухбайтового диапазона для статического файла MP3, обслуживаемого Nginx

Я размещаю файл MP3 размером 2,9 МБ с Nginx. Когда я перехожу к его URL-адресу с помощью Chrome на Android, выполняются два запроса: один обычный запрос и один запрос двухбайтового диапазона.

Когда я копирую первый запрос как команду cURL и выполняю его в Mac OS X, он загружает файл целиком. Однако на Android загружается только 3,7 КБ до того, как будет выполнен запрос двухбайтового диапазона. Nginx послушно отвечает только двумя байтами данных, а элементы управления звуком, отображаемые в Chrome, остаются нефункциональными.

Я пробовал установить max_ranges 0 , отключить etags, gzip и т. Д. Я могу ' Кажется, Chrome не пытается заставить Chrome загрузить оставшуюся часть файла.

Первый запрос:

GET /yt/test.mp3 HTTP / 1.1 один нормальный запрос и один запрос двухбайтового диапазона. Когда я копирую первый ...

Я размещаю файл MP3 размером 2,9 МБ с Nginx. Когда я перехожу к его URL-адресу с помощью Chrome на Android, выполняются два запроса: один обычный запрос и один запрос двухбайтового диапазона.

Когда я копирую первый запрос как команду cURL и выполняю его в Mac OS X, он загружает файл целиком. Однако на Android загружается только 3,7 КБ до того, как будет выполнен запрос двухбайтового диапазона. Nginx послушно отвечает только двумя байтами данных, а элементы управления звуком, отображаемые в Chrome, остаются нефункциональными.

Я пробовал установить max_ranges 0 , отключить etags, gzip и т. Д. Я могу ' Кажется, Chrome не пытается заставить Chrome загрузить оставшуюся часть файла.

Первый запрос:

GET /yt/test.mp3 HTTP / 1.1 один нормальный запрос и один запрос двухбайтового диапазона. Когда я копирую первый ...

Я размещаю файл MP3 размером 2,9 МБ с Nginx. Когда я перехожу к его URL-адресу с помощью Chrome на Android, выполняются два запроса: один обычный запрос и один запрос двухбайтового диапазона.

Когда я копирую первый запрос как команду cURL и выполняю его в Mac OS X, он загружает файл целиком. Однако на Android загружается только 3,7 КБ до того, как будет выполнен запрос двухбайтового диапазона. Nginx послушно отвечает только двумя байтами данных, а элементы управления звуком, отображаемые в Chrome, остаются нефункциональными.

Я пробовал установить max_ranges 0 , отключить etags, gzip и т. Д. Я могу ' Кажется, Chrome не пытается заставить Chrome загрузить оставшуюся часть файла.

Первый запрос:

GET /yt/test.mp3 HTTP / 1.1 Когда я копирую первый ...

Я размещаю файл MP3 размером 2,9 МБ с Nginx. Когда я перехожу к его URL-адресу с помощью Chrome на Android, выполняются два запроса: один обычный запрос и один запрос двухбайтового диапазона.

Когда я копирую первый запрос как команду cURL и выполняю его в Mac OS X, он загружает файл целиком. Однако на Android загружается только 3,7 КБ до того, как будет выполнен запрос двухбайтового диапазона. Nginx послушно отвечает только двумя байтами данных, а элементы управления звуком, отображаемые в Chrome, остаются нефункциональными.

Я пробовал установить max_ranges 0 , отключить etags, gzip и т. Д. Я могу ' Кажется, Chrome не пытается заставить Chrome загрузить оставшуюся часть файла.

Первый запрос:

GET /yt/test.mp3 HTTP / 1.1 Когда я копирую первый ...

Я размещаю файл MP3 размером 2,9 МБ с Nginx. Когда я перехожу к его URL-адресу с помощью Chrome на Android, выполняются два запроса: один обычный запрос и один запрос двухбайтового диапазона.

Когда я копирую первый запрос как команду cURL и выполняю его в Mac OS X, он загружает файл целиком. Однако на Android загружается только 3,7 КБ до того, как будет выполнен запрос двухбайтового диапазона. Nginx послушно отвечает только двумя байтами данных, а элементы управления звуком, отображаемые в Chrome, остаются нефункциональными.

Я пробовал установить max_ranges 0 , отключить etags, gzip и т. Д. Я могу ' Кажется, Chrome не пытается заставить Chrome загрузить оставшуюся часть файла.

Первый запрос:

GET /yt/test.mp3 HTTP / 1.1 Когда я перехожу к его URL-адресу с помощью Chrome на Android, выполняются два запроса: один обычный запрос и один запрос двухбайтового диапазона.

Когда я копирую первый запрос как команду cURL и выполняю его в Mac OS X, он загружает файл целиком. Однако на Android загружается только 3,7 КБ до того, как будет выполнен запрос двухбайтового диапазона. Nginx послушно отвечает только двумя байтами данных, а элементы управления звуком, отображаемые в Chrome, остаются нефункциональными.

Я пробовал установить max_ranges 0 , отключить etags, gzip и т. Д. Я могу ' Кажется, Chrome не пытается заставить Chrome загрузить оставшуюся часть файла.

Первый запрос:

GET /yt/test.mp3 HTTP / 1.1 Когда я перехожу к его URL-адресу с помощью Chrome на Android, выполняются два запроса: один обычный запрос и один запрос двухбайтового диапазона.

Когда я копирую первый запрос как команду cURL и выполняю его в Mac OS X, он загружает файл целиком. Однако на Android загружается только 3,7 КБ до того, как будет выполнен запрос двухбайтового диапазона. Nginx послушно отвечает только двумя байтами данных, а элементы управления звуком, отображаемые в Chrome, остаются нефункциональными.

Я пробовал установить max_ranges 0 , отключить etags, gzip и т. Д. Я могу ' Кажется, Chrome не пытается заставить Chrome загрузить оставшуюся часть файла.

Первый запрос:

GET /yt/test.mp3 HTTP / 1.1 он загружает файл целиком. Однако на Android загружается только 3,7 КБ до того, как будет выполнен запрос двухбайтового диапазона. Nginx послушно отвечает только двумя байтами данных, а элементы управления звуком, отображаемые в Chrome, остаются нефункциональными.

Я пробовал установить max_ranges 0 , отключить etags, gzip и т. Д. Я могу ' Кажется, Chrome не пытается заставить Chrome загрузить оставшуюся часть файла.

Первый запрос:

GET /yt/test.mp3 HTTP / 1.1 он загружает файл целиком. Однако на Android загружается только 3,7 КБ до того, как будет выполнен запрос двухбайтового диапазона. Nginx послушно отвечает только двумя байтами данных, а элементы управления звуком, отображаемые в Chrome, остаются нефункциональными.

Я пробовал установить max_ranges 0 , отключить etags, gzip и т. Д. Я могу ' Кажется, Chrome не пытается заставить Chrome загрузить оставшуюся часть файла.

Первый запрос:

GET /yt/test.mp3 HTTP / 1.1 Хост: xxx.xxx.xx.xxx Подключение: keep-alive Прагма: без кеширования Cache-Control: без кеша Принять: text / html, application / xhtml + xml, application / xml; q = 0.9, image / webp, * / *; q = 0.8 Небезопасные запросы на обновление: 1 Пользовательский агент: Mozilla / 5.0 (Linux; Android 6.0.1; Nexus 6P Build / MMB29Q) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 48.0.2564.95 Mobile Safari / 537.36 Принятие кодировки: gzip, deflate, sdch Accept-Language: en-US, en; q = 0,8

Ответ:

HTTP / 1.1 200 OK Сервер: nginx Дата: понедельник, 15 февраля 2016 г., 01:12:31 GMT Тип содержимого: аудио / MPEG Content-Length: 2891369 Последнее изменение: понедельник, 15 февраля 2016 г., 00:26:18 GMT Подключение: keep-alive ETag: "56c11b2a-2c1e69" Параметры X-Frame: SAMEORIGIN Параметры X-Content-Type: nosniff X-XSS-Protection: 1; режим = блок Accept-Ranges: байты

Второй запрос:

GET /yt/test.mp3 HTTP / 1.1 Хост: xxx.xxx.xx.xxx Подключение: keep-alive Прагма: без кеширования Cache-Control: без кеша Пользовательский агент: Mozilla / 5.0 (Linux; Android 6.0.1; Nexus 6P Build / MMB29Q) AppleWebKit / 537.36 (KHTML, как Gecko) Chrome / 48.0.2564.95 Mobile Safari / 537.36 Принять: * / * Референт: https://xxx.xxx.xx.xxx/yt/test.mp3 Принятие кодировки: gzip, deflate, sdch Accept-Language: en-US, en; q = 0,8 Диапазон: байты = 0-1

Ответ:

HTTP / 1.1 206 Частичное содержимое Сервер: nginx Дата: понедельник, 15 февраля 2016 г., 01:12:32 GMT Тип содержимого: аудио / MPEG Длина содержимого: 2 Последнее изменение: понедельник, 15 февраля 2016 г., 00:26:18 GMT Подключение: keep-alive ETag: "56c11b2a-2c1e69" Параметры X-Frame: SAMEORIGIN Параметры X-Content-Type: nosniff X-XSS-Protection: 1; режим = блок Content-Range: байты 0-1 / 2891369

0
задан 15 February 2016 в 03:26
1 ответ

Хорошо, почти наверняка проблема в том, что Chrome переключает загрузку и воспроизведение мультимедиа на Android MediaPlayer. В моей ситуации сертификаты SSL не были настроены правильно (поскольку мое доменное имя было временно ошибочно внесено в черный список моим реестром). Я мог бы вручную просмотреть предупреждения системы безопасности в Chrome, чтобы перейти на страницу, но я думаю, что как только MediaPlayer попытался взять на себя выборку ресурса, он отказался от ошибки сертификата.

Не уверен на 100%, что это была проблема , но мой домен снова в эксплуатации, и сейчас все работает. Я, вероятно, мог бы избавить себя от головной боли, отключив HTTPS, когда работал с необработанными IP-адресами.

1
ответ дан 4 December 2019 в 16:41

Теги

Похожие вопросы