跳到主要内容

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).