> However, having a reverse proxy retrying _any_ requests to backends by default seems very bad form to me. Do you want your routers resending packets? It's the same thing.
No: HTTP GET is explicitly idempotent and cachable. As an HTTP client, you are supposed to be able to send the same GET all day, and it's up to the server to not screw that up.
I would argue that relying on the behavior allowed by a standard is the only way to make it actually be allowed. Otherwise, people code to your unwritten, stricter standard, relying on nobody else ever sending them something that is allowed. Then, when something allowed by the standard does happen, they blow up.
But once you introduce other software in the ecosystem that is guaranteed to send you these sorts of things, you'll damn well better release a new version of your package that works with them.
No: HTTP GET is explicitly idempotent and cachable. As an HTTP client, you are supposed to be able to send the same GET all day, and it's up to the server to not screw that up.