質問: 海賊版ダウンロードに罰則の法案が可決されたとのニュースを知り、素朴な疑問が生じたので質問させていただきます。ことによるとこれはプログラミングの質問には関係がないと思われるかもしれませんが、これは広義での技術についての疑問であると思います。 さて、違法ダウンロードへの罰則ということは、違法にダウンロードされたことを警察が知る必要がありますが、それは技術的にはどのようにして知ることができるのでしょうか? 違法サイト側がユーザがワンクリックでダウンロードできるようなボタンを設置していれば、そのボタンを押したユーザのIPアドレスを(都合よく)サーバに保存すれば良いのでしょうが、これだとボタンをうっかりクリックしてしまった場合 ー罰則は継続的なダウンロードに対して行われるということですがー もダウンロードとみなされますので、それを阻止するには、ダウンロードが(キャンセルされずに)完了したことを知る必要があると思います。 そこで一つ目の質問です。サイト側が、それを構成するプログラムの機能を用いて設置したダウンロードボタンをクリックしてダウンロードした場合、(ボタンのクリックではなく)ダウンロードが完了したということを検知することは可能なのでしょうか? これはサイトがユーザのフォルダにアクセスしないと不可能な気がしますがどうなのでしょうか。 そして二つ目の質問です。ブラウザのダウンロード機能(たとえば右クリック->..の保存、とかcmd-sあるいはctl-sとか)でサイトあるいはそのコンテンツをダウンロードする場合、サイトが設置されているサーバとの通信は発生するのでしょうか?あるいはブラウザの機能によってダウンロードされたことをサイトは感知できるのでしょうか? 実際に(違法ではない)サイトをブラウザで開いた後にネット接続を切断してからサイトのダウンロードを試みたところ、実際にダウンロードできてしまいました。(ダウンロードしたファイルはすぐに消しました!(念のために)) つまり、ブラウザの機能でサイトをダウンロードする場合は、ブラウザがサイトを表示するために読み込んだデータを保存するだけで、これではサイト側はダウンロードされたことを知ることはできないのではないのでしょうか? ``` 質問を要約しますと、「サイト側はそのコンテンツがダウンロードされたことを知ることはできるのか? ただしダウンロード方法は問わない。つまりサイト側がそのコンテンツがダウンロードされたと検知できるようなダウンロード方法は存在するのか」です。 また、webサイトではなくアプリケーションであれば事情は変わってくると思いますが、何がどのように変化するのでしょうか? ``` 法的な回答ではなく、技術的な解説をしていただけますと幸いです。 なお、開発言語や環境などは一切問いません。 また、この投稿は、ダウンロード履歴が残らないということを確認して違法ダウンロードをしようと目論んだものではありませんし、それを推薦するものでもありません!
回答: > > (ボタンのクリックではなく)ダウンロードが完了したということを検知することは可能なのでしょうか? > > > はい、当然ながらサーバサイドが全部送信しなければダウンロードは完結しませんので、送信側で「最後まで送信したか」の識別は可能です。