The server stores the key with the result of the first execution. A request that arrives again with the same key (a retry after a timeout, a double click) gets the stored answer and changes nothing. See idempotency.