The standard says "POST means NOT-IDEMPOTENT" and "clients MUST not re-issue a non-idempotent requests" and the client behavior naturally falls out of those two constraints.
The standard being completely backward and impossible to enforce is a problem!
Re:Some New HTTP Verbs
by P5fRxh5kUvp2th on Tuesday September 13, 2022 @12:21PM
(#32826383)
standards are agreements, they've never been there with the expectation of enforcement.
Unenforceable and unenforced are very different things.
Re:Some New HTTP Verbs
by P5fRxh5kUvp2th on Tuesday September 13, 2022 @12:33PM
(#32826559)
Unless you've got state actors behind it, it's unenforceable, full stop.
We saw this when MS would regularly ignore HTML standards.
POST is intentionally not idempotent. If you want impotence, that's what PUT and DELETE are for. Sadly, browser support for those two methods is somewhat lacking. You can't specify that a form send a PUT request, for example, only GET or POST.
Re:Some New HTTP Verbs
by Ferret7446 on Tuesday September 13, 2022 @05:57PM
(#32830690)
You're looking for PUT.
Instead there's a workaround for a serious problem, and any client (browser being by no means the only client) which doesn't respect the convention can emit identical POSTs, with no way of knowing if that was intended.