2009-11-30 10 views
11

PDFをブラウザに表示すると、ほとんどの(IE、FF、Safari、Chrome、Opera)私はWebTrends Web Analyticsソフトウェアとの統合に関する問題に取り組んでおり、PDFに関する統計は間違っているようです。サポートは、WebTrendsがトラフィック、ダウンロードなどを判断するためにWebサーバーのアクセスログを解析するため、正確なPDFダウンロードを判断するのが困難なため、
ユーザーがPDFをクリックし、PDFがユーザーのブラウザでAcrobat Readerのブラウザプラグインでは、各ページが1つずつダウンロードされます。ユーザーが50ページのPDFの最初の2ページのみを表示する場合は、最初の2ページのみがダウンロードされます。ブラウザでPDFを表示すると、ほとんどのブラウザで複数のHTTPリクエストが発生する

これは私にとって怪しいです(HTTPリクエストはバイナリファイルの一部のみを配信するためにはどうすればいいですか) - 私はGoogleを検索してきましたが、これに対して何も見つかりませんでした。

明日HTTPトラフィックを傍受してこの現象を観察できるかどうかを確認できるIEソフトウェアを見つけようとします。

どのような情報や考えもありがたいです。

+1

そのような回答ではありませんが、httpはコンテンツ範囲ヘッダーを介してファイルの一部をダウンロードすることをサポートしています。おそらくPDFはそれを使用しています... * shrugs * – Will

+2

私はそのようなIPパケットの盗聴のために非常に便利なフィドラーを見つけました。 –

+0

[RFC 2616、セクション3.12](http://greenbytes.de/tech/webdav/rfc2616.html#rfc.section.3.12)を参照してください。 –

答えて

13

あなたのサイトには、このようなHTTPレスポンスヘッダを返す場合:

Accept-Ranges: bytes 

をPDFリーダーは、ドキュメントのわずか数KBを読んだ後intitial接続を閉じます。次に、レンジリクエストヘッダと、必要に応じて文書のセクションを要求する例えば:

Range: bytes=242107-244329, 8060-76128 

このhttp://www.ovationguitars.com/img/OVmanual.pdfでないURLの例。

あなたは受け入れ-範囲を返さない場合は、PDF文書はあなたがHttpWatchを使用してIEでPDFリーダーの動作を確認することができ、単一の要求(例えばhttp://manuals.info.apple.com/en/iphone_user_guide.pdf

にダウンロードされますその後、ヘッダー。

**免責事項:この回答をHttpWatch 2016年6月のように私のために**

+0

非常に面白いありがとう!これは可能ですが、さらに調査(HTTPRequests/Respsonsesを見て)しても、IE用のAdobe Acrobat Readerプラグインがこのような方法でリクエストを作成することはサポートされていないようです(とはいえ、PDFを提供しているWebアプリケーション私はhavent任意の合成要求のバイト範囲を送った) – empire29

+0

私は、Chromeのiphone_user_guide.pdf(https://manuals.info.apple.com/MANUALS/1000/MA1565/en_US/iphone_user_guide.pdf)をチェックしたと私は2つの要求を得る:最初のものは大丈夫です。 2番目はキャンセルされます。 –

+0

私は今でもこの動作を見ていますが、Fiddlerは、 "accept-ranges"ヘッダーは含まれていないことを示しています。 –

0

あなたの意見は、あなたのプラグインはPDFをリクエストに分割できないことです。

私はリクエスト(1回のリクエスト)からPDFファイルを提供し、プラグインで表示するWebアプリケーションを持っています。それ以上の情報を得ることなくPDF全体を表示します。

また、HTTPスニファをお探しの場合は、Fiddlerを試してみてください。 Webサイトのデバッグ中にこれが便利であることがわかりました。

+0

最新のAdobe Acrobat Readerプラグインを使用してIE(公式の "サポート"ブラウザ)を使用してHTTPWatchでチェックしたところ、PDF全体がプルダウンされていました。 バイト範囲についてヘッダーに何も表示されませんでした。 – empire29

2

のメーカーは、FirefoxとIE11が唯一の呼び出しを行う、Simtec Limitedが投稿されました。

Content-Dispositionヘッダーがない場合、Chromeは2回コールします。見つからない場合、Chromeは2つのGETを行い、2番目のGETをキャンセルして、ブラウザにPDFを表示します。サーバーは秒がキャンセルされたことを知らず、PDFを再度送信します。

このヘッダーがサーバーから送信されると、Chromeは1回だけ通話を行い、ファイルを起動または保存します。私が持っている場合

Content-Disposition: attachment 

ChromeでPDFのoccoursへ

Content-Disposition: attachment; filename=test.pdf 
+1

このヘッダーを追加すると2番目の呼び出しが防止されますが、Chromeは添付ファイルのようにPDFをダウンロードし、ブラウザ内で – kman

+0

はい。私はまだそれがバグだと思っていますが、これはその周りの一つの方法です。 –

+2

問題は、ChromeのPDFプラグインです。 Content-Disposition:添付ファイルPDFプラグインは使用されません。このため、エラーは発生しません。詳細はこちら:https://bugs.chromium.org/p/chromium/issues/detail?id=587709 –

0
私のテストで

、二重の要求を(また...ユーザーがファイルを保存するときに使用するファイル名を提案することができます) REST Console 4.0.2拡張が有効になっています。この拡張機能を無効にすると、Chromeは正常に機能します(1回のリクエストのみ)。

編集:Instapaper拡張機能を有効にすると、ChromeはPDFに対して2回のリクエストを行います。

関連する問題