416 Запрошенный диапазон не удовлетворяет - PullRequest
17 голосов
/ 05 мая 2011

Контекст: я использую программный пакет под названием Social Engine. Это очень глючит.

В любом случае, я попросил (даже заплатил) людей из Social Engine сделать обновление, и когда они наконец сделали это, я зашел на сайт и заметил, что все стили отсутствуют. Я открыл билет в службу поддержки, и все, что мне сказали, это то, что это ошибка 416, и я связался с моим провайдером.

Эта ошибка была обнаружена путем тестирования прямой ссылки на файлы CSS, которые находятся в доступной для записи папке в программном обеспечении.

http://ministersdev3.themonastery.org/application/css.php?request=application/themes/monastery-theme/theme.css&c=6

Я начал проводить свои исследования только для того, чтобы обнаружить, что это чрезвычайно редкая ошибка, и я не смог увидеть никаких предложений по отключению запроса диапазона поворота на моем сервере Ubuntu 10.10 Linode (с последними версиями Apache и PHP5 с установленным расширением APC). Возможно, это проблема программного обеспечения? Как-то работает кеширование с APC? Я сбросил кеширование в этом программном обеспечении до 60 секунд и убедился, что оно использует APC. Все еще нет игры в кости.

Что-то может делать их программное обеспечение, и мне нужно будет заняться исправлениями?

Ответы [ 3 ]

10 голосов
/ 05 мая 2011

Возможно, проблема в том, что ваш браузер кэшировал исходные файлы CSS и пытался запросить байтовые диапазоны новых файлов. См. Например эту ошибку с Chrome .

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

Header unset Accept-Ranges

Это скажет клиентам, что они не могут использовать заголовок запроса Range для запроса диапазонов байтов ваших файлов.

6 голосов
/ 09 мая 2014

В верхней части моего файла .htaccess

Header set Accept-Ranges none
RequestHeader unset Range 

надеюсь, это поможет.

3 голосов
/ 09 ноября 2011

Перехватите заголовки, возвращаемые вашим провайдером, и убедитесь, что вы получаете код состояния 416. Если это так, перехватите заголовки, которые вы отправляете своему провайдеру, и отбросьте заголовок диапазона; это должно заставить сервер отправить вам весь файл.

...