Idempotency
The property that performing an operation many times has the same effect as performing it once.
In a distributed system a client that does not receive a response cannot tell whether the request was lost on the way out, processed and lost on the way back, or is still being processed. Its only options are to retry or to give up. So every operation that can be retried must be safe to retry, which means idempotent.
GET, PUT and DELETE are idempotent by definition; POST is not. The standard fix is an idempotency key: the client generates a unique key per logical operation and sends it with every attempt; the server records the key with the result and, on seeing it again, returns the stored result instead of re-executing.
The subtlety is what to store and for how long. Storing only "seen" lets a retry return success without the caller learning the outcome; storing the full response for a bounded window is what makes the pattern actually work.