4.9.3. Caching 与 Application Semantics
4.9.3. Caching 与 Application Semantics
设计使用 HTTP 的 application 时, 重要的是考虑 caching 如何与 application semantics 相互作用.
例如, 如果 application 定义一个表示 item list 的 resource, 且 item 可以被添加或移除, 则 application 需要考虑:
-
cached list 应在多长时间内被视为 fresh?
-
如果 client 基于过期的 cached list 作出决策, 会发生什么?
-
当 list 变化时, application 是否应使用 cache invalidation mechanism 通知 cache?
application SHOULD 设计其 resource representation 和 caching strategy, 使二者良好配合. 这可能包括:
-
基于 resource 变化频率选择适当的 freshness lifetime.
-
使用 conditional request 以允许高效 validation.
-
提供 cache invalidation mechanism (例如, 对频繁变化的 resource 使用
Cache-Control: no-cache). -
设计自然 cacheable 的 resource (例如, 尽可能使 resource immutable).