2013-08-07 2 views
0

Я думал об использовании опции кеш-контроля в JAX-RS.Кэширование в JAX-RS для запросов POST

Но все, что я знаю и полностью понимаю, используется в GET и PUT запросах. Кто-нибудь когда-либо пытался использовать его для запроса POST?

Я создаю веб-сервис RESTful, который удовлетворяет запросы клиентов. Он внутренне перенаправляет запрос клиента другому компоненту и отбрасывает ответ обратно клиенту. Ответ одинаковый для идентичных запросов.

Как я могу использовать кеширование, чтобы иногда напрямую реагировать на кеш вместо ответа на отправку/получение от внутреннего компонента?

Я не могу использовать базу данных или nosql dDB для запроса/ответа на кеширование. Я хочу что-то в памяти, которое теряется после перезапуска приложения.

ответ

0

HTTP имеет методы, которые являются безопасной или небезопасным и методы, которые идемпотентная или не idempotet. См the HTTP spec:

Методы могут также обладать свойством «идемпотентности» в том, что (в стороне от проблем ошибок или истечения срока действия) побочные эффекты N> 0 идентичных запросов являются таким же, как для одного запроса. Методы GET, HEAD, PUT и DELETE делятся этим свойством.

Вы можете GET, PUT или DELETE а ресурсы так часто, как вам нравится, то результат будет таким же, независимо от того, как часто вы это делаете.

Как вы видите, POST является не idempotet. Это имеет значение для POST запрос к ресурсу один, два или более раз. Это потому, что семантика POST составляет . что-то ниже Ресурс, который вы POST.

Из-за всего этого нет смысла кэшировать результат запроса POST.

Смежные вопросы