Koşullu Delete istekleri, istemcilerin kaynaklarını silmelerini engellemeye yardımcı olabilir. Örneğin, istemci bir kullanıcı kullanıcı kaynağını silmek istemeyebilir. İstemci kullanıcının "inaktif" den "aktife" değiştirir.
Şimdi DELETE istekleri için eşzamanlılık denetiminin nasıl olduğuna kısaca bakalım.
İstemci koşulsuz bir DELETE isteği gönderirse, 403 hata kodunu döndürür. Verilen koşullar uyuşmuyorsa 412 hata kodunu (Başarısız) döndürür. Her iki durumda da, sorunun durumunu temsili olarak açıklayın. İstemciler koşullu bir DELETE talebi gönderirse ve sağlanan koşullar eşleşirse, kaynağı silin.
Sunucunun yapması gereken kontrollere genel bir bakış için aşağıdaki akışı bakabiliriz.
Bir müşteri silinmeye hazır olduğunu varsayarak bir kaynağı silmeye karar verebilir. İçinde bu arada başka bir müşteri aynı kaynağı güncelleyerek ilk müşterinin varsayımsal olarak koşullu DELETE kullanma durumu bunu önler. DELETE isteği koşullu olduğunda sunucu istemcinin silme kararını doğrulayabilir. Kaynak en son duruma bağlıdır. Sunucu bu işi şu şekilde yapar.
İstemci tarafından sağlanan If-Unmodified-Since ve If-Match başlıkları bunların şimdiki değerleri.
# Process this request if and only if the included conditional tags match
DELETE /reviews/notes_from_underground HTTP/1.1
Host: www.example.org
If-Unmodified-Since: Sun, 09 Aug 2009 00:56:14 GMT
If-Match: "3f4a74db207d0447d46710a64971e777"
# Response
HTTP/1.1 204 No Content
Hiç yorum yok:
Yorum Gönder