Большинство браузеров делают несколько HTTP-запросов при отображении PDF из браузера - PullRequest
12 голосов
/ 30 ноября 2009

Большинство (IE, FF, Safari, Chrome, Opera) делают несколько HTTP-запросов для файла PDF при отображении PDF в браузере? Я работаю над проблемой интеграции с программным обеспечением WebTrends Web Analytics, и статистика по файлам PDF кажется неверной. Служба поддержки сказала мне, что, поскольку WebTrends анализирует журналы доступа веб-серверов для определения трафика, загрузок и т. Д., Ему сложно определить точные загрузки PDF, потому что:
Когда пользователь нажимает на PDF-файл и PDF-файл открывается в браузере пользователя через подключаемый модуль браузера Acrobat Reader, каждая страница загружается по одному - это позволяет сохранить пропускную способность, если пользователь просматривает только первые 2 страницы 50-страничного PDF, загружаются только первые 2 страницы.

Это звучит странно для меня (как можно было сделать HTTP-запрос, чтобы обслуживать только часть двоичного файла?) - Я искал в Google, но не нашел ничего, что говорило бы об этом. *

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

Любая информация / мысли приветствуются.

Ответы [ 4 ]

13 голосов
/ 30 ноября 2009

Если ваш сайт возвращает HTTP-заголовок ответа, например:

Accept-Ranges: bytes

Программа чтения PDF закроет исходное соединение после прочтения всего лишь нескольких КБ документа. Затем он запрашивает разделы документа, как требуется, с заголовком запроса Range, например ::

.
Range: bytes=242107-244329, 8060-76128

Пример URL, который делает это: http://www.ovationguitars.com/img/OVmanual.pdf.

Если вы не вернете заголовок Accept-Ranges, документ PDF будет загружен за один запрос (например, http://manuals.info.apple.com/en/iphone_user_guide.pdf)

Вы можете увидеть поведение программы чтения PDF в IE, используя HttpWatch .

** Отказ от ответственности: Этот ответ был опубликован Simtec Limited, создателями HttpWatch **

2 голосов
/ 02 июня 2016

Для меня по состоянию на июнь 2016 года Firefox и IE11 делают только один звонок.

Chrome делает два вызова, если заголовок Content-Disposition отсутствует. Когда он отсутствует, Chrome делает два GET, кажется, отменяет второй, и показывает PDF в браузере. Сервер не знает, что второе отменено, и снова отправляет PDF.

Когда этот заголовок отправляется с сервера, Chrome выполняет только один вызов и запускает или сохраняет файл.

Content-Disposition: attachment

(Вы также можете предложить имя файла, которое будет использоваться, когда пользователь сохранит файл ...)

Content-Disposition: attachment; filename=test.pdf
0 голосов
/ 07 июня 2016

В моих тестах двойные запросы к PDF происходят в Chrome, если у меня включено расширение REST Console 4.0.2. Отключение этого расширения заставляет Chrome работать как положено (только один запрос).

Редактировать: расширение Instapaper также позволяет Chrome делать двойные запросы в PDF.

0 голосов
/ 30 ноября 2009

Я думаю, что вы на месте: ваш плагин не может (и не должен) разбивать PDF-файлы на запросы.

У меня есть веб-приложение, которое обслуживает файлы PDF по запросу (один запрос) и отображается в плагине. Он отображает весь PDF без получения дополнительной информации.

Кроме того, если вы ищете анализатор HTTP, вы можете попробовать Fiddler . Я нашел это полезным во время отладки веб-сайта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...