2

問題文: Windows (VS 2010) 上の C++ でファイル ダウンロード マネージャー API を設計しています。不要なダウンロードを避けるために、新しいバージョンがサーバーで利用可能な場合にのみ、コンポーネントがファイルをダウンロードする機能を追加する必要があります。

ファイル自体をダウンロードせずに、新しいバージョンのファイルがサーバーで利用可能かどうかを判断する方法はありますか?

編集:サーバー上でWebサービスなどをホストするためのWebサーバーへのアクセス/制御がありません。

前もって感謝します!

-SF

4

1 に答える 1

1

次のいずれかを実行できます。

  1. サーバーにHEADリクエストを送信し、レスポンスLast-Modifiedおよび/またはETagヘッダーを確認します。ファイルを初めてダウンロードする場合、またはヘッダー値が以前のダウンロードで保存したものと一致しない場合は、サーバーにGETコマンドを送信して最新のファイルをダウンロードし、新しいヘッダー値を保存します。 ) 次回のために。

  2. 以前にファイルをダウンロードしたことがある場合は、最初GETにリクエストを送信せずに、サーバーに「条件付き」リクエストを送信できますHEAD。リクエストを「条件付き」にするには、次のいずれかを行います。

    を。以前のダウンロードからのヘッダーIf-Modified-Sinceの値を含むヘッダーを含めます。Last-Modified

    b. 以前のダウンロードからのヘッダーIf-Matchの値を含むヘッダーを含めます。ETag

「条件付き」GETリクエストでは、ファイルがサーバー上で変更されていない場合 (ファイルの現在のヘッダー値If-がリクエストした値と一致している場合)、サーバーは304 Not Modifiedファイル データを送信せずに応答を送信します。ファイルがサーバー上で変更されている場合、またはサーバーが「条件付き」GETリクエストをサポートしていない場合は、200 OK代わりに現在のファイル データで応答を送信します。

于 2013-06-06T22:13:47.393 に答える