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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
aki

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

#1

投稿記事 by aki » 9年前

問題は解決(?)しましたが、その確認のため質問させていただきます。

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通信に詳しい方がいましたらご教授をお願いいたします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

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

#2

投稿記事 by h2so5 » 9年前

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

閉鎖

“C言語何でも質問掲示板” へ戻る