In theory, one should use the HTTP GET
method only for idempotent requests.
But, for some intricate reasons, I cannot use any other method than GET
and my requests are not idempotent (they mutate the database). So my idea is to use the Cache-Control: no-cache
header to ensure that any GET
request actually hits the database. Also, I cannot change the URLs which means I cannot append a random URL argument to bust caches.
Am I safe or shall I implement some kind of mechanism to ensure that the GET
request was received exactly once? (The client is the browser and the server is Node.js.)
What about a GET
request that gets duplicated by some middle-man resulting in the same GET
request being received twice by the server? I believe the spec allows such situation but does this ever happen in "real life"?
I've never seen a middle man, such as Cloudflare or NGNIX, preventing or duplicating a GET
request with Cache-Control: no-cache
.
from Is it possible for an HTTP `GET` request with `Cache-Control: no-cache` to not hit the server exactly once? (Levering out idempotency of `GET`.)
No comments:
Post a Comment