4.9.3. Caching and Application Semantics (キャッシングとアプリケーションセマンティクス)
4.9.3. Caching and Application Semantics (キャッシングとアプリケーションセマンティクス)
HTTP を使用するアプリケーションを設計するとき, キャッシングがアプリケーションのセマンティクスとどのように相互作用するかを考慮することが重要です。
たとえば, アプリケーションがアイテムのリストを表すリソースを定義し, アイテムを追加または削除できる場合, アプリケーションは次のことを考慮する必要があります:
-
キャッシュされたリストはどのくらいの期間新鮮と見なされるべきか?
-
クライアントが古いキャッシュされたリストに基づいて決定を下した場合はどうなるか?
-
アプリケーションはリストが変更されたときにキャッシュに通知するためにキャッシュ無効化メカニズムを使用すべきか?
アプリケーションは, リソース表現とキャッシング戦略がうまく連携するように設計すべきです (SHOULD)。これには次のことが含まれる場合があります:
-
リソースが変更される頻度に基づいて適切な鮮度ライフタイムを選択する。
-
効率的な検証を可能にするために条件付きリクエストを使用する。
-
キャッシュ無効化メカニズムを提供する (例: 頻繁に変更されるリソースに
Cache-Control: no-cacheを使用する)。 -
可能な場合はリソースを不変にするなど, リソースが自然にキャッシュ可能になるように設計する。