Bir metot sunucu durumunu değiştirmiyorsa güvenlidir: GET, HEAD, OPTIONS. Aynı isteği çok kez yapmak bir kez yapmakla aynı etkiyi bırakıyorsa idempotenttir: GET, HEAD, OPTIONS, PUT ve DELETE. Her güvenli metot idempotenttir; tersi doğru değildir, çünkü DELETE durumu değiştirdiği hâlde idempotenttir.
Otomatik yeniden denemeyi mümkün kılan tam olarak bu özelliklerdir. Bir vekil sunucu, bir tarayıcı ya da bir HTTP kütüphanesi, zaman aşımından sonra idempotent bir isteği size sormadan tekrarlayabilir, çünkü tekrarlamak durumu kötüleştiremez. POST ve PATCH ne güvenli ne idempotenttir; hiçbir katman onları sizin yerinize tekrarlamaz — ve Idempotency-Key başlığı, bir POST’a doğuştan sahip olmadığı özelliği vermek için vardır.
İdempotentin “aynı yanıtı döner” demek olduğu sanılır. Sunucu üzerindeki aynı *etki* demektir. Aynı kaynağın ikinci DELETE’i, birincisi 204 ve ikincisi 404 dönse bile idempotenttir: son durum — o şeyin artık olmaması — aynıdır.
`GET /starfleet/v1/tribbles` bilinçli bir anti-örnektir: her okumada sayıyı ikiye katlayan bir GET. “Güvenli” olmanın neyi koruduğunu buradaki en net gösteren şey odur.
Tüm sözlük maddeleri · Test teknikleri · 39 mock REST API’nin tamamı
Last updated