我在考虑利用JAX-RS中的cachecontrol选项。
但我知道并完全理解的是,它在GET
和PUT
请求中使用。
有没有人曾尝试将其用于POST
请求?
我正在构建一个满足客户请求的RESTful Web服务。它在内部将客户端的请求转发给另一个组件,并将响应转发回客户端。相同请求的响应相同。
我如何使用缓存有时直接从缓存中响应而不是从内部组件转发/接收响应?
我无法使用数据库或nosql dDB来缓存请求/响应。我希望内存中的内容在应用程序重启后丢失。
答案 0 :(得分:0)
HTTP具有安全或不安全的方法,以及幂等或不是idempotet 的方法。见the HTTP spec:
方法也可以具有“幂等性”的特性(除了错误或期满问题之外)N的副作用> 0个相同的请求与单个请求相同。方法GET,HEAD,PUT和DELETE共享此属性。
您可以随时GET
,PUT
或DELETE
使用资源,无论您多久使用一次,结果都是一样的。
如您所见,POST
不是idempotet 。它会对POST
对资源的请求产生一次,两次或更多次的不同。这是因为POST
的语义是创建
由于这一切,缓存POST
请求的结果是没有意义的。