When the request is effectively read-only or otherwise idempotent.
A GET for shipping rates is usually safe to retry because it should not create side effects. A POST that charges a card is different: retrying after an unknown outcome can create duplicates.