ページ 11

WindowsのWinHttpを利用したプロキシサーバ経由のファイルのダウンロードについて

Posted: 2014年8月01日(金) 14:47
by aki
問題は解決(?)しましたが、その確認のため質問させていただきます。

WinHttpを利用したファイルのダウンロードするプログラムを書いています。
このとき、稀にですがプロキシサーバ経由でファイルをダウンロードした時に
サーバ上に置かれているファイルではなく、古いファイルをダウンロードするケースが発生します。
(サーバ上の対象ファイルは数時間間隔で更新されます)


確認したいのは、このようなケースではプロキシサーバ上の古いキャッシュをプログラム側がダウンロードしているのでしょうか?
また、httpヘッダーに"Pragma: no-cache"を追加することで解決するのでしょうか? (現在(修正前)はhttpヘッダーに"Pragma: no-cache"は存在しません)


一応プログラム側で上記のヘッダーを追加してからは、問題は発生していませんが発生頻度が稀で、原因箇所が正しいの自信がないため質問させていただきました。

プログラム側はWinHttpOpenRequest()の最終引数にWINHTTP_FLAG_REFRESHを追加することで、上記httpヘッダーが付加されました。
修正前)HINTERNET hR = ::WinHttpOpenRequest( hC, L"GET", szUrlPath, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, 0);
修正後)HINTERNET hR = ::WinHttpOpenRequest( hC, L"GET", szUrlPath, NULL, WINHTTP_NO_REFERER, WINHTTP_DEFAULT_ACCEPT_TYPES, WINHTTP_FLAG_REFRESH);


知識不足で申し訳ありませんが、HTTP通信に詳しい方がいましたらご教授をお願いいたします。

Re: WindowsのWinHttpを利用したプロキシサーバ経由のファイルのダウンロードについて

Posted: 2014年8月01日(金) 16:43
by h2so5
aki さんが書きました: 確認したいのは、このようなケースではプロキシサーバ上の古いキャッシュをプログラム側がダウンロードしているのでしょうか?
その可能性は高いと思います。
aki さんが書きました: また、httpヘッダーに"Pragma: no-cache"を追加することで解決するのでしょうか? (現在(修正前)はhttpヘッダーに"Pragma: no-cache"は存在しません)
それはプロキシサーバの実装次第です。