Repository navigation
OTR_CacheControl
nishi_74322014 edited this page Oct 27, 2026
·
1 revision
Open 棟梁の方針は、動的な画面のレスポンスはキャッシュさせないことである。
戻るボタンでのログアウト後の再表示や、プロキシへの残存による機密漏えい・データ不整合を避ける。
- 設定
FxCacheControlをonにすると、親クラス2 がすべてのレスポンスにキャッシュ無効化のヘッダを付ける。 - Web Forms・MVC(net48 / net10.0)の両方で効く。既定は OFF なので、方針として ON を推奨する。
Cache-Control: no-cache, no-store, must-revalidate (HTTP/1.1)
Pragma: no-cache (HTTP/1.0)
Expires: 0 (プロキシ)
- 不正操作防止・画面遷移制御と併用して、戻るボタンでの再表示を防ぐ(三点セット)。
- ファイルのダウンロードなどで上書きしたいときは、
Response.Clear()してからヘッダを設定し直す(ファイルのダウンロード)。
- 設定
FxSqlCacheSwitch:SQL 定義ファイルのキャッシュ。 - 自動生成 Dao のクエリ・キャッシュ:コンストラクタに固定の ID を渡すと、動的 SQL の組み立て結果を再利用する(D層自動生成ツール)。
| 種類 | 手段 |
|---|---|
| レスポンス(HTTP)キャッシュ |
[ResponseCache] 属性(ヘッダを出すだけ) |
| 出力キャッシュ | OutputCache ミドルウェア(.NET 7 以降。UI アプリ向けの推奨) |
| データ・キャッシュ |
IMemoryCache(単一サーバ)、IDistributedCache(Redis など、複数インスタンスで共有) |
| 静的アセット | 長い max-age + immutable + 内容のハッシュ |
-
ユーザ識別・認証に依存する内容はキャッシュしない(
no-store)。この結論は Open 棟梁の方針と同じ。
- スキル
opentouryo-app-design(references/cache-control.md)を使わせる。 - エージェントが性能改善の名目で、認証後の画面にキャッシュを付けていないかを確認する。
Tags: 再構築
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。