ダウンロードはいつ登録されますか?


21

Google画像で画像を表示しているときに、誤って[名前を付けて画像を保存]または[画像を表示]をクリックする場合があります(何らかの理由でダウンロードを促すこともあります)。次に、このファイルをダウンロードするかどうかを尋ねるウィンドウが開きます。ただし、何かが保存される前にキャンセルした場合、これは「サーバー」側からのダウンロードと見なされますか?私はこのトピックにあまり精通していないので、「サーバー」の使用は、前述のアクティビティを記録/保存する可能性のあるあらゆるエンティティを対象としています。


4
誰がそのように登録しましたか?多くのログ分析ソフトウェア(awstats、goaccessなど)は、特定のサフィックス(.zip、.pdf ...)が付いたファイルをダウンロードすると見なします。通常、拡張機能のリストは構成可能です。他のソフトウェアは異なるアプローチを使用する場合があります。
jjmontes

回答:


52

サーバー側から見ると、「ブラウザウィンドウで表示するために転送する」と「ストレージにダウンロードする」の間に技術的な違いはまったくありません

サーバーは、ダウンロード用に(より小さい)プレビューと(より大きい)実際のイメージを提供し、アクセスされたイメージを区別できる場合があります。ただし、これらのファイルへのアクセス、リクエストの送信元IPアドレス、ブラウザソフトウェアの一般的な「ID文字列」のみを登録(およびログ)できます。クライアントの意図ではありません

ただし、ファイルアクセスは、クライアントコンピューターとの人間の対話によって常に発生するわけではありません。一方では、「名前を付けて画像を保存...」を使用しなくても、ブラウザは画像や他のウェブサイトのデータをシステムに保存します。一方、多くのブラウザーは、ナビゲーションを高速化するために事前に「リンクをたどる」(つまり、ダウンロードする!)ことさえできます。これらのファイルに意図的にアクセスしたことがない場合でも、ブラウザのキャッシュはローカルバックアップにそのようになる場合があります。

最後に、「名前を付けて保存」とキャンセル(宛先ファイル名を選択しない)を使用すると、使用しているブラウザの実装に応じて、ダウンロードが開始される場合とされない場合があります。


12
ヘック:キャンセルに関係なく、「名前を付けて保存」はダウンロードを開始する場合としない場合があります-ブラウザーが既に画像を持っている場合、サーバーから再度要求する理由(「キャッシュなし」のヒントなど)。
minnmass

6
実際には、そこにすることができるという点で、差Content-DispositionHTTPヘッダinlineブラウザのビューを示してattachmentダウンロード。
Uwe Keim

13
@UweKeimそれは実際にはサーバーからのヒントです。通常はブラウザーがそれに続きますが、サーバーはクライアントが実際にブラウザーであるかどうか、またはこのヘッダーを尊重するかどうかを判断する方法がありません。curl https://www.google.com/ -H 'User-Agent: I am really a web browser, trust me' >> /dev/null;)
ElmoVanKielmo

1
...そして、それが理論以上のものであることを示すために、PDFを検討してください。歴史的には、これらはブラウザによってダウンロードとして扱われてきましたが、最新のブラウザはそれらを直接表示できます。
MSalters

1
そのURLなどが既にブラウザのキャッシュにない限り、ブラウザダウンロード開始します。そうしないと、ブラウザにはファイル名、ドキュメントの種類、保存するファイルの内容があるかどうかを伝える方法がありません。ブラウザは、サーバーへの要求のいくつかの種類を発行し、サーバがしますが、それが望んでいることを「カウント」。
クリストファーシュルツ

7

私はこのトピックにあまり精通していないので、「サーバー」の使用は、アクティビティを記録/監視/保存する可能性のあるすべてのエンティティを対象としています。

HTTPサーバーにはキャンセルされたダウンロードが表示されませんが、そのようなイベントを監視するJavascriptコードがページにある場合があります。

Javascriptには、画像の右クリックを検出するために使用できるイベントハンドラーがあり、他のマウスの動きを監視して、ポップアップメニューから選択した内容を推測できる可能性が非常に高いです。その後、スクリプトは情報をすぐにサーバーに簡単に送信したり、ローカルのブラウザーストレージに保存して後で送信したりできます。

Google画像検索の特定のケースでは、そのページのJavascriptにはマウスイベントをリッスンする複数のハンドラーがあります。ただし、コードは難読化されているため、どのような監視を行っているかを伝えるのは簡単ではありません。


1
「名前を付けて保存」は通常、サーバーに接続してファイル名、タイプ、サイズを取得します。おそらくHEADHTTPリクエストではなくGET
ベンフォイト

@BenVoigtには、「名前を付けて保存」と「名前を付けて画像を保存」の間に大きな違いがあります。1つはリンク用で、もう1つは既に表示されているため以前にダウンロードされた画像用です。
ジョセフ

@Josef:本当ですが、OPが既にキャッシュにあるコンテンツに自分自身を制限したいということを示す質問には何もありません。実際、「何かが保存される前にキャンセルする」というフレーズには、反対の強い提案があります。
ベンフォイト

6

これはサーバーに依存しています。

サーバーは、ダウンロードの開始時に登録できるようになります(名前を示唆しているので、それについて考えなければなりません)。

サーバーは、転送されたバイト数と接続が閉じられたかどうかを追跡することもできます。これにより、ダウンロードが完了したかどうかがわかります。

再開されたダウンロードやマルチスレッドのダウンロードなど、他の可能性もありますが、サーバーはこれをすべて把握して記録できます。

画像を右クリックしてダウンロードする特定のケースでは、クライアント側のキャッシュのためにダウンロードがまったくダウンロードとして登録されない可能性があることに注意してください。


サーバーは名前を提案しません。アバターを右クリックし、「
名前を付けて

9
@DavidPostillダウンロードの開始方法によって異なります。あなたとのリンクやリダイレクトリソースへの、およびサーバ応答に従った場合はContent-Disposition: attachment; filename="…"、ブラウザの表示されるようにダウンロードがプロンプト、その後、ダウンロードをキャンセルした場合でも、サーバーは、要求を知っているだろう-と、おそらくダウンロードが中止されたことを区別することができます。
ベルギ

4

...何かが保存される前にキャンセルした場合、「サーバー」はこれをダウンロードとして通知/記録しますか?

ダウンロードが開始されていないため、リモートサーバーはダウンロードアクティビティに気付かないはずです。

ただし、リモートサーバーは、ブラウザに表示するために既に画像ダウンロードしていることを認識しています ...そしてコピーがブラウザのキャッシュにあります...

ローカルマシンを直接監視する「エンティティ」は、そのアクティビティに関する何かを記録できます。


2
「名前を付けて保存...」はリクエストを行いますよね?ブラウザは、提案する名前を知っている必要があります。urlは単なる/ downloadである場合がありますが、Content-Dispositionヘッダーには実際のファイル名が含まれます。
データ

1
@dataいいえ。名前はダウンロードしたページのhtmlにあります。
DavidPostill

1
Chromeなどの一部のブラウザは、アクセスしているWebページに表示されるURLを事前にダウンロードしてキャッシュすることに注意してください。
トビアテサン

3
@DavidPostillあなたは間違っています。名前はContent-Dispositionヘッダーでオーバーライドできます(既に何度か説明されています)。つまり、最初に要求を行う必要あります。さらに、ブラウザは、宛先ディレクトリを選択する前にペイロードのダウンロードを開始できます。
モニカとの軽さレース

6
私が知っているすべてのWebブラウザーは、リンクをクリックするとすぐにダウンロードを開始し、少なくとも過去20年間はダウンロードを開始しています。彼らはあなたがファイル名を選ぶのを待たないだろう-彼らは一時ファイル(またはメモリ)に保存し、「OK」を押すと名前を変更するだろう。
マーク
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.