Sobes.tech
Middle

Tüm HTTP yöntemleri idempotent mi?

sobes.tech yapay zeka

AI'dan gelen yanıt

Hayır, tüm HTTP yöntemleri idempotent değildir.

İdempotens, aynı parametrelerle aynı isteğin birkaç kez yapılması durumunda, sunucu tarafında sonuç ilk başarılı uygulamadan sonra değişmeyeceği anlamına gelir.

Ana HTTP yöntemleri ve idempotenslikleri:

Yöntem İdempotent mi? Amaç
GET Evet Veri almak
HEAD Evet Yanıt başlıklarını almak
PUT Evet Kaynağı oluşturmak veya tamamen değiştirmek
DELETE Evet Kaynağı silmek
POST Hayır Veri göndermek, kaynak oluşturmak veya işlem yapmak
PATCH Hayır Kaynağın kısmi güncellenmesi

POST ve PATCH idempotent değildir çünkü her yürütme, yeni bir kaynak oluşturabilir veya uygulamaya bağlı olarak kaynağın durumunu değiştirebilir, bu da ilk başarılı uygulamadan sonra benzersiz değildir. Örneğin, bir kullanıcı oluşturmak için birden çok kez POST isteği göndermek genellikle birkaç kullanıcı oluşturur.

İşte bir POST örneği, idempotent olmayan:

{
  "username": "testuser"
}

Bu POST isteği, her çağrıldığında yeni bir kullanıcı oluşturabilir.

İşte bir PUT örneği, idempotent:

{
  "id": 123,
  "status": "completed"
}

Bu PUT isteği, ID'si 123 olan kaynağın durumunu "completed" olarak ayarlar. Tekrar edilmesi, durum zaten "completed" ise değişiklik yapmaz.