Is REST DELETE really idempotent?

Idempotence refers to the state of the system after the request has completed

In all cases (apart from the error issues – see below), the account no longer exists.

From here

“Methods can also have the property of
“idempotence” in that (aside from
error or expiration issues
) the
side-effects of N > 0 identical
requests is the same as for a single
request. The methods GET, HEAD, PUT
and DELETE share this property. Also,
the methods OPTIONS and TRACE SHOULD
NOT have side effects, and so are
inherently idempotent. “

The key bit there is the side-effects of N > 0 identical requests is the same as for a single request.

You would be correct to expect that the status code would be different but this does not affect the core concept of idempotency – you can send the request more than once without additional changes to the state of the server.

Leave a Comment