Güvenli ve idempotent metotlar

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.

Nasıl çalışır

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.

Yaygın yanılgı

İ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.

Burada deneyin

`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.

İlgili

Diğer terimler

Read this page in English

Tüm sözlük maddeleri · Test teknikleri · 39 mock REST API’nin tamamı

Last updated