2013-08-07 47 views
0

我在考慮利用JAX-RS中的cachecontrol選項。用於POST請求的JAX-RS緩存

但我所知道的和完全理解的是,它在GETPUT請求中使用。 有沒有人曾經嘗試過使用它來請求POST

我正在構建一個滿足客戶請求的RESTful web服務。它將客戶端的請求內部轉發給另一個組件,並將響應轉儲回客戶端。對於相同的請求,響應是相同的。

如何使用緩存有時直接從緩存做出響應,而不是從內部組件轉發/接收響應?

我無法使用數據庫或nosql dDB來緩存請求/響應。我希望內存中的某些內容在應用程序重新啓動後丟失。

回答

0

HTTP具有被安全不安全不idempotet方式和方法。見the HTTP spec

方法還可以有「冪等性」的,所述屬性(除了錯誤或過期的問題)N> 0相同的請求的副作用是相同的單個請求。方法GET,HEAD,PUT和DELETE共享這個屬性。

您可以GETPUT,或者DELETE一個資源往往你喜歡,結果是一樣的,不管你怎麼經常這樣做。

正如你看到的,POST而不是idempotet。它對POST對資源的請求有一次,兩次或更多次的區別。這是因爲POST的語義是創建東西以下資源你POST到。

由於所有這些,緩存POST請求的結果是沒有意義的。