Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / идемпотентность HTTP методов / 12 сообщений из 12, страница 1 из 1
30.08.2013, 17:25:53
    #38382693
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
Я всегда понимал это так, что если например я нажимаю кнопку на форме(страница перезагружается), а потом я нажимаю на refresh страницы, то у меня ничего не должно поменяться.
Но сейчас вижу такую ситуацию, что не важно get у меня или Post - разницы никакой - данные добавляются в базу дважды при перезагрузке страницы.

Объясните в чем я заблуждаюсь.
...
Рейтинг: 0 / 0
30.08.2013, 17:33:49
    #38382706
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
redwhite90Но сейчас вижу такую ситуацию, что не важно get у меня или Post
Да хоть Put. Браузер заново отправляет запрос на сервер. Иногда даже об этом предупреждая.

Что делает обработчик, и может ли он отличить новый запрос от повторения старого - на усмотрение его разработчика.
...
Рейтинг: 0 / 0
30.08.2013, 17:36:14
    #38382712
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
Сергей Арсеньев,

а в почему тогда пишут везде что get идемпотентен, а post нет?
...
Рейтинг: 0 / 0
30.08.2013, 17:49:23
    #38382728
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
То что HTTP "спецификация" что-то подразумевает, ещё не значит, что конкретный сервер это поддерживает.
...
Рейтинг: 0 / 0
30.08.2013, 17:54:34
    #38382733
Андрей Панфилов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
redwhite90а в почему тогда пишут везде что get идемпотентен, а post нет?Это в бОльшей мере относится к forward-proxy и балансировщикам - они не должны перепосылать POST в случае failover
...
Рейтинг: 0 / 0
30.08.2013, 17:55:59
    #38382734
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
Blazkowicz,

Ок, тогда это соглашение, которое я не обязан реализовывать. Просто где ни прочти - везде так уверенно пишут, что get идемпотентный, а post нет.

автор9.1.2 Idempotent Methods

Methods can also have the property of "idempotence" in that (aside
from error or expiration issues) the side-effects of N > 0 identical
requests is the same as for a single request. The methods GET, HEAD,
PUT and DELETE share this property. Also, the methods OPTIONS and
TRACE SHOULD NOT have side effects, and so are inherently idempotent.
However, it is possible that a sequence of several requests is non-
idempotent, even if all of the methods executed in that sequence are
idempotent. (A sequence is idempotent if a single execution of the
entire sequence always yields a result that is not changed by a
reexecution of all, or part, of that sequence.) For example, a
sequence is non-idempotent if its result depends on a value that is
later modified in the same sequence.

A sequence that never has side effects is idempotent, by definition
(provided that no concurrent operations are being executed on the
same set of resources).
Просто и в спецификации то непонятно написано - могут быть,а могут и не быть а просто post вообще не написано - но это ведь не значит, что он обязательно неидемпотентен
...
Рейтинг: 0 / 0
30.08.2013, 17:57:19
    #38382735
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
Просто и в спецификации то непонятно написано - могут быть,а могут и не быть. А про post вообще не написано - но это ведь не значит, что он обязательно неидемпотентен.
...
Рейтинг: 0 / 0
30.08.2013, 19:52:05
    #38382843
DEVcoach
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
redwhite90 ,
В спецификации фигурирует слово SHOULD , то есть что-то вроде "по идее должны быть". А как оно будет на самом деле - зависит только от вас. Ответственность за идемпотентность лежит на вас. Нужна вам идемпотентность - делайте. Не нужна - не делайте.
...
Рейтинг: 0 / 0
30.08.2013, 20:03:18
    #38382850
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
redwhite90Просто и в спецификации то непонятно написано - могут быть,а могут и не быть.
А что непонятно. Все что требует спецификация это делать все методы GET, HEAD, PUT and DELET либо идемпотентными либо нет, OPTIONS and TRACE всегда не должны иметь сторонних эффектов, а оставшиеся ( POST ) сами по себе.
...
Рейтинг: 0 / 0
30.08.2013, 20:21:16
    #38382862
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
Сергей Арсеньев,

Сергей Арсеньев OPTIONS and TRACE всегда не должны иметь сторонних эффектов

о каких сторонних эффектах говорится кстати?
...
Рейтинг: 0 / 0
31.08.2013, 19:09:35
    #38383238
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
redwhite90Просто и в спецификации то непонятно написано - могут быть,а могут и не бытьЕсть "спецификации о спецификации".
Если вкратце, то нарушающий MUST (NOT) - нарушает спецификацию, нарушающий SHOULD (NOT) - просто редиска.

P.S. Если переводить "MUST" / "MUST NOT", как "Обязан" и "Не имеет права", а SHOULD (NOT) как (Не) Должен - всё становится намного проще.
...
Рейтинг: 0 / 0
02.09.2013, 10:56:20
    #38383893
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
идемпотентность HTTP методов
redwhite90о каких сторонних эффектах говорится кстати?
Не должно производится никаких действий, помимо тех, что явно требуются.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / идемпотентность HTTP методов / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]