在JAX-RS中缓存POST请求

时间:2013-08-07 15:26:11

标签: rest jax-rs cache-control

我在考虑利用JAX-RS中的cachecontrol选项。

但我知道并完全理解的是,它在GETPUT请求中使用。 有没有人曾尝试将其用于POST请求?

我正在构建一个满足客户请求的RESTful Web服务。它在内部将客户端的请求转发给另一个组件,并将响应转发回客户端。相同请求的响应相同。

我如何使用缓存有时直接从缓存中响应而不是从内部组件转发/接收响应?

我无法使用数据库或nosql dDB来缓存请求/响应。我希望内存中的内容在应用程序重启后丢失。

1 个答案:

答案 0 :(得分:0)

HTTP具有安全不安全的方法,以及幂等不是idempotet 的方法。见the HTTP spec

  

方法也可以具有“幂等性”的特性(除了错误或期满问题之外)N的副作用> 0个相同的请求与单个请求相同。方法GET,HEAD,PUT和DELETE共享此属性。

您可以随时GETPUTDELETE使用资源,无论您多久使用一次,结果都是一样的。

如您所见,POST 不是idempotet 。它会对POST对资源的请求产生一次,两次或更多次的不同。这是因为POST的语义是创建

由于这一切,缓存POST请求的结果是没有意义的。