如何在CouchDB中更改响应头(缓存)?

时间:2016-01-05 23:09:14

标签: couchdb

您知道如何更改CouchDB中的响应标头吗?现在它已Cache-control: must-revalidate;,我想将其更改为no-cache

1 个答案:

答案 0 :(得分:0)

我没有看到任何方法在其configuration documentation中为一般(内置)API调用配置CouchDB的缓存头行为。由于这不是典型的需求,因此缺乏配置并不让我感到惊讶。

同样,last I tried甚至显示和列出函数(它们确实为开发人员提供的自定义函数提供了对标题的一些控制),并不会将缓存标题保留在开发人员控制之下。

但是,如果您在像nginx这样的反向代理之后托管CouchDB实例,则可能会覆盖该级别的标头。另一个选择是添加通常的“缓存破坏”黑客,在访问您的服务器的代码中添加随机查询参数。在broken client cache implementations的情况下,这有时是必要的,但这不是典型的。

但退后一步:你为什么要回复no-cache而不是must-revalidate?我可能会偶尔想要覆盖另一个方向,让客户端缓存文档一段时间而不必重新验证。不让客户端缓存对我来说似乎有点好奇,因为使用重新验证的Etags的内置CouchDB行为不会产生任何不正确的数据,除非客户端被破坏。