İçeriğe geçin

ETag

ETag, HTTP kaynağının belirli bir gösterim sürümünü tanımlar; koşullu okuma veya değişiklik isteklerinde kullanılır.

Diğer adlarıEntity tag
API ve veri sözleşmeleri

Entity tag, HTTP yanıtındaki ETag başlığında bulunan bir doğrulayıcıdır. Gönderilen gösterimin belirli bir sürümünü tanımlar. Değerin içerik hash’i olması gerekmez; istemci onu sıralanabilir bir sürüm numarası olarak değil, içeriği yorumlanmayan bir kimlik olarak ele almalıdır.

İki koşullu istek

Kurgusal bir proje özeti ETag: "r7" ile yanıt verir. Daha sonraki bir GET isteğinde If-None-Match: "r7" gönderilirse ve gösterim değişmemişse sunucu yanıt gövdesini tekrar göndermeden 304 döndürebilir. Gösterim değişmişse yeni gösterim kendi yeni doğrulayıcısıyla aktarılır.

Değişiklikte aynı kimliğin görevi farklıdır: If-Match: "r7" içeren bir düzenleme, artık güncel olan "r8" gösterimiyle karşılaşır. Sağlanmayan önkoşul, yeni durumun eski düzenlemeyle ezilmesi yerine 412 sonucunu verir. Uygulama bu çakışmayı görünür biçimde ele almalıdır. Kontrol ve değişiklik sunucuda doğru birlikte uygulanmalıdır; başlığı göndermek tek başına koruma sağlamaz.

If-Match güçlü karşılaştırma kullanır. W/ önekli zayıf doğrulayıcı bu karşılaştırmayı karşılamaz. Önbellekten okuma ve yazma kontrolünde farklı koşullar kullanılır. ETag ayrıca yetki kontrolünün yerine geçmez; veriyi kimin görebileceğini veya değiştirebileceğini belirlemez.

Kaynaklar