web-dev-qa-db-ja.com

一時停止可能なダウンロードはどのように機能しますか?

データのダウンロードにInternetDownload Manager(IDM)を使用していますが、ダウンロードの進行状況ウィンドウに、ダウンロードが一時停止可能(再開可能)かどうかが表示されていることに気付きました。通常、ファイル共有サイトでは、接続が切断された場合に転送を再開することはできません。

だから問題はこれです:これはどのように機能しますか?サーバーで行われる設定ですか?これは、ダウンロードが常に再開可能なトレントダウンロードとどのように異なりますか。

20
Rafay

コーディングの観点からは、ダウンロードはHTTP応答ストリームに含まれる単なるバイト配列です。

HTTP 1.1プロトコル (30ページを参照)には、ヘッダーに「範囲」と呼ばれるフィールドが含まれています。これにより、要求は、要求された応答のバイトオフセットと長さを指定できます。

つまり、「このURLにあるHTTPオブジェクトを教えてください。ただし、1024バイト目から4096バイト目までが必要です」と言えます。次に、クライアントブラウザは、ダウンロード済みのファイルの部分にバイトストリームを追加します。クライアントは、ダウンロード済みのファイルの長さを確認するだけで、再開する必要がある場所を特定し、それをインクリメントして必要なオフセットを決定できます。

ダウンロードマネージャーは、HTTP "HEAD"リクエストを送信する方法を確認できます。応答コードが206(部分的なコンテンツ)の場合、httpストリームは再開をサポートします。

29
Frank Thomas

これは、 永続的なCookie を使用して処理できます。 セッションCookie と混同しないでください。または、サイトがASP.NETで構築されている場合は、[Viewstate]を使用できます。良い習慣ではありません。フランク・トーマスが最良の答えを持っています。

1
Josh Campbell