HTTP PUT/DELETE are idempotent, so clients can make that same call repeatedly while producing the same result and should not have any side effects. Is this just a rule/convention that the developers should follow? In other words, are the developers responsible for ensuring their HTTP PUT/DELETE operations are idempotent? We can always make PUT/DELETE non-idempotent depending on how they set up the resource and implement it, correct?