組み込みジョブurlopenのキャッシュ
回答済みいつもお世話になっております。
urlopenを使っていて、キャッシュ周りの挙動を把握する必要があり、教えて欲しいです。
urlopenを下のオプションで実行した場合、
Kompiraのローカルでキャッシュされて、次のurlopenで利用されるようなことはありますでしょうか。
``urlopen(url, timeout=180, charset="UTF-8", proxies=proxies)``
ある場合、キャッシュ期間はHTTPのレスポンスにしたがうのでしょうか。
また、プロキシ等を経由した場合に、それらにキャッシュを使わないようにリクエストするとき、以下の書き方で合っていますでしょうか。
``urlopen(url, timeout=180, charset="UTF-8", proxies=proxies, headers={'Cache-Control':'no-cache'})``
-
正式なコメント
フィックスポイントの高橋です。
urlopen() は呼び出しごとに個別セッションでのHTTPのやり取りを行います。また、そのセッション間の情報共有をするような機能、たとえばレスポンスデータのキャッシュなどを行うことは(レスポンスにキャッシュ期間が指定されていても)ございません。すなわち、あるレスポンスが次の urlopen() で利用されるといったことは(現時点の仕様では)ありません。
プロキシやキャッシュサーバを経由する場合は、それら中継点においてキャッシュがなされることは十分に考えられます。キャッシュさせないようにしたい場合、実際の動作はそれらの仕様に依存するので明確には申し上げられませんが、一般的には Cache-Control: no-cache はオリジンサーバへの問い合わせの強制であり(応答に中継点のキャッシュが使われるかもしれない?)、保存禁止の意図であれば Cache-Control: no-store をリクエストヘッダに指定していただくのがよいかもしれません。
参考になさってください。
以上、よろしくお願いいたします。
コメントアクション
サインインしてコメントを残してください。
コメント
2件のコメント