|
|
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
Я всегда понимал это так, что если например я нажимаю кнопку на форме(страница перезагружается), а потом я нажимаю на refresh страницы, то у меня ничего не должно поменяться. Но сейчас вижу такую ситуацию, что не важно get у меня или Post - разницы никакой - данные добавляются в базу дважды при перезагрузке страницы. Объясните в чем я заблуждаюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 17:25:53 |
|
||
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
redwhite90Но сейчас вижу такую ситуацию, что не важно get у меня или Post Да хоть Put. Браузер заново отправляет запрос на сервер. Иногда даже об этом предупреждая. Что делает обработчик, и может ли он отличить новый запрос от повторения старого - на усмотрение его разработчика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 17:33:49 |
|
||
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, а в почему тогда пишут везде что get идемпотентен, а post нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 17:36:14 |
|
||
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
То что HTTP "спецификация" что-то подразумевает, ещё не значит, что конкретный сервер это поддерживает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 17:49:23 |
|
||
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
redwhite90а в почему тогда пишут везде что get идемпотентен, а post нет?Это в бОльшей мере относится к forward-proxy и балансировщикам - они не должны перепосылать POST в случае failover ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 17:54:34 |
|
||
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
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 вообще не написано - но это ведь не значит, что он обязательно неидемпотентен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 17:55:59 |
|
||
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
Просто и в спецификации то непонятно написано - могут быть,а могут и не быть. А про post вообще не написано - но это ведь не значит, что он обязательно неидемпотентен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 17:57:19 |
|
||
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
redwhite90 , В спецификации фигурирует слово SHOULD , то есть что-то вроде "по идее должны быть". А как оно будет на самом деле - зависит только от вас. Ответственность за идемпотентность лежит на вас. Нужна вам идемпотентность - делайте. Не нужна - не делайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 19:52:05 |
|
||
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
redwhite90Просто и в спецификации то непонятно написано - могут быть,а могут и не быть. А что непонятно. Все что требует спецификация это делать все методы GET, HEAD, PUT and DELET либо идемпотентными либо нет, OPTIONS and TRACE всегда не должны иметь сторонних эффектов, а оставшиеся ( POST ) сами по себе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 20:03:18 |
|
||
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, Сергей Арсеньев OPTIONS and TRACE всегда не должны иметь сторонних эффектов о каких сторонних эффектах говорится кстати? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 20:21:16 |
|
||
|
идемпотентность HTTP методов
|
|||
|---|---|---|---|
|
#18+
redwhite90Просто и в спецификации то непонятно написано - могут быть,а могут и не бытьЕсть "спецификации о спецификации". Если вкратце, то нарушающий MUST (NOT) - нарушает спецификацию, нарушающий SHOULD (NOT) - просто редиска. P.S. Если переводить "MUST" / "MUST NOT", как "Обязан" и "Не имеет права", а SHOULD (NOT) как (Не) Должен - всё становится намного проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2013, 19:09:35 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38383893&tid=2128693]: |
0ms |
get settings: |
17ms |
get forum list: |
21ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
40ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
| others: | 325ms |
| total: | 517ms |

| 0 / 0 |
