- 追加された行はこの色です。
- 削除された行はこの色です。
[[Open棟梁>https://github.com/OpenTouryoProject]] wiki
「[[Open棟梁 wiki>https://opentouryo.osscons.jp]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。
-[[戻る>アプリケーション設計のポイント]]
*目次 [#yf53fe18]
#contents
*概要 [#a9338cf0]
.NETによるキャッシュ・コントロール処理
*詳細 [#s1a06ac9]
**方針 [#jce5c581]
キャッシュ・コントロールについては、アプリケーションの不整合を引き起こす可能性があるので無効化する。
>キャッシュ有効化は、主に性能を考慮したものであるが、~
Webアプリケーションでは、アプリケーションの不整合を懸念して無効化して利用することが多い。
また、”Open棟梁”の「[[不正操作防止機能]]」・「[[画面遷移制御機能]]」を併用することで、キャッシュ参照の問題を回避することができる。
// ファイルダウンロード処理などUPでフレームワークの設定したキャッシュ制御を変更したい場合は、Response.Clearを実行する。
Response.AddHeader("Cache-Control", "no-cache");
Response.CacheControl = "no-cache";
//若しくは、
Response.AddHeader("Cache-Control", "private");
Response.CacheControl = "private";
**設定 [#g23b047e]
キャッシュ有効化は、主に性能を考慮したものであるが、~
Webアプリケーションでは、アプリケーションの不整合を懸念して無効化して利用することが多い。
***インフラ側から設定 [#kfda9754]
Cache-ControlのHTTPヘッダーは、IISから設定することもできる。
キャッシュ、HTTP圧縮は、IISでも可能だがアプライアンスに~
負荷をオフロードすることもできるの導入なども合わせて検討する。
***プログラム側から設定 [#qdcc57c7]
例:
// http - How to control web page caching, across all browsers? - Stack Overflow
// http://stackoverflow.com/questions/49547/how-to-control-web-page-caching-across-all-browsers
// Using ASP.NET:
Response.AppendHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1.
Response.AppendHeader("Pragma", "no-cache"); // HTTP 1.0.
Response.AppendHeader("Expires", "0"); // Proxies.
https://github.com/OpenTouryoProject/OpenTouryo/blob/develop/root/programs/CS/Frameworks/Infrastructure/Business/Presentation/MyBaseController.cs#L385
*参考 [#xe1ff2dd]
-[[キャッシュ・コントロールのHTTPヘッダ - マイクロソフト系技術情報 Wiki>https://techinfoofmicrosofttech.osscons.jp/index.php?%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%83%BB%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%AB%E3%81%AEHTTP%E3%83%98%E3%83%83%E3%83%80]]
-IPA ISEC セキュア・プログラミング講座:~
Webアプリケーション編 第5章 暴露対策:プロキシキャッシュ対策~
https://www.ipa.go.jp/security/awareness/vendor/programmingv2/contents/405.html
-webにおけるキャッシュと時刻の話 - Qiita~
http://qiita.com/0xfffffff7/items/56a8d6832c152fbeeacf
-HTTPキャッシュについて整理してみた - Qiita~
http://qiita.com/karore/items/2dc6ab8347c940ea4648
-最新バージョンでは以下に従って処理を改修しました。
--Implement no-cache processing in the base class.~
Issue #218 · OpenTouryoProject/OpenTouryo~
https://github.com/OpenTouryoProject/OpenTouryo/issues/218