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

Почему мы видим частичные ответы Apache 206 на скачивание PDF-файлов?

При просмотре журнала доступа Apache, когда пользователи загружают файлы PDF с нашего сервера, часто (но не всегда) происходит следующее. Сначала запрашивается и доставляется URL-адрес со статусом 200 (ok) и полным размером ответа, затем сразу же следуют многочисленные запросы для одного и того же URL-адреса от того же клиента, с меньшим размером ответа и кодом состояния 206 (частичный ответ).

Другими словами, некоторые клиенты сначала успешно загружают весь PDF-файл, а затем снова загружают многочисленные «фрагменты» файла.

Почему мы это видим?

Это запросы «диапазона байтов» (функция HTTP / 1.1), которые обычно выполняются подключаемым модулем браузера Adobe Reader.

Они предназначены для поддержки возможности перехода по ссылке в вашем браузере на теоретический PDF-файл объемом 50 МБ, получения оглавления, перехода по ссылке в оглавлении на последнюю или две страницы, а читатель загружает последние несколько страниц, давая вы сразу получаете доступ к тому, что ищете, и продолжаете загружать остальную часть PDF в фоновом режиме.

Некоторые версии Adobe Reader называли это «быстрым просмотром в Интернете».

Я не уверен, почему вы сначала увидите полный запрос с полным размером файла, поэтому я не уверен, что я ответил на ваш вопрос удовлетворительно.

Следуя догадке, я нашел некоторые дополнительные материалы, которые, кажется, подтверждают, что исходный HTTP-запрос браузера для файла часто будет продолжаться в фоновом режиме после передачи в плагин Adobe. Плагин выполняет различные запросы байтового диапазона, но исходный запрос браузера заканчивается полным размером файла, поскольку изначально это не было запросом байтового диапазона.

Я не уверен, сочтет ли Adobe это ошибкой или нет. Он может эффективно удвоить объем передаваемых данных, но может сделать «пользовательский интерфейс» на стороне клиента «более быстрым / более отзывчивым». :)