При просмотре журнала доступа Apache, когда пользователи загружают файлы PDF с нашего сервера, часто (но не всегда) происходит следующее. Сначала запрашивается и доставляется URL-адрес со статусом 200 (ok) и полным размером ответа, затем сразу же следуют многочисленные запросы для одного и того же URL-адреса от того же клиента, с меньшим размером ответа и кодом состояния 206 (частичный ответ).
Другими словами, некоторые клиенты сначала успешно загружают весь PDF-файл, а затем снова загружают многочисленные «фрагменты» файла.
Почему мы это видим?
Это запросы «диапазона байтов» (функция HTTP / 1.1), которые обычно выполняются подключаемым модулем браузера Adobe Reader.
Они предназначены для поддержки возможности перехода по ссылке в вашем браузере на теоретический PDF-файл объемом 50 МБ, получения оглавления, перехода по ссылке в оглавлении на последнюю или две страницы, а читатель загружает последние несколько страниц, давая вы сразу получаете доступ к тому, что ищете, и продолжаете загружать остальную часть PDF в фоновом режиме.
Некоторые версии Adobe Reader называли это «быстрым просмотром в Интернете».
Я не уверен, почему вы сначала увидите полный запрос с полным размером файла, поэтому я не уверен, что я ответил на ваш вопрос удовлетворительно.
Следуя догадке, я нашел некоторые дополнительные материалы, которые, кажется, подтверждают, что исходный HTTP-запрос браузера для файла часто будет продолжаться в фоновом режиме после передачи в плагин Adobe. Плагин выполняет различные запросы байтового диапазона, но исходный запрос браузера заканчивается полным размером файла, поскольку изначально это не было запросом байтового диапазона.
Я не уверен, сочтет ли Adobe это ошибкой или нет. Он может эффективно удвоить объем передаваемых данных, но может сделать «пользовательский интерфейс» на стороне клиента «более быстрым / более отзывчивым». :)