Назад | Перейти на главную страницу

Apache возвращает HTTP 206 для GET /file.mp3

Я делаю запрос на получение на сайте с поддержкой SSL на apache (так что wirehark не дает мне ничего полезного).

В моем журнале доступа Apache SSL я вижу следующую запись:

1.2.3.4 - my.username [15/Nov/2012:16:52:01 +0000] "GET /uploads/file.mp3 
HTTP/1.1" 206 534400 "https://site.com/uploads/layla.mp3" 
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) 
Ubuntu/12.04 Chromium/18.0.1025.168 Chrome/18.0.1025.168 Safari/535.19"

Почему это происходит? Я не знаком с кодом ответа HTTP 206, но поискав в Интернете, я вижу, что это частичные запросы GET содержимого. Я правильно понимаю, мой браузер делает частичный запрос GET, а не полный файл. Это правильно? Если да, то это проблема браузера или веб-сервер дает указание моему браузеру сделать это? Я также тестировал в Firefox, и в обоих браузерах мне не отправляли файл.

Если я переименую файл в file.jpg, я могу загрузить его через браузер и переименовать в .mp3, и он будет воспроизводиться.

Как я могу решить эту проблему?

Из RFC2616:

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

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

Вы можете использовать инструмент браузера для проверки заголовков запросов и ответов для ресурса, чтобы убедиться, что они соответствуют RFC; результат скажет вам, в чем проблема.