E-Tag'i kontrol etmek ve bu mantığı sağlamak uygulama geliştiricisinde. Web sunucusunun sizin için yaptığı sihir değildir, çünkü yalnızca E-Tag
statik içerik için başlıkların nasıl hesaplanacağını bilir . Öyleyse yukarıdaki senaryoyu ele alalım ve etkileşimin nasıl olması gerektiğine bakalım.
GET /projects/1
Sunucu isteği alır, kaydın bu sürümü için E-Etiketi belirler ve bunu gerçek içerikle döndürür.
200 - OK
E-Tag: "412"
Content-Type: application/json
{modified: false}
İstemci artık E-Tag değerine sahip olduğundan, PUT
isteği şu şekilde içerebilir :
PUT /projects/1
If-Match: "412"
Content-Type: application/json
{modified: true}
Bu noktada başvurunuz aşağıdakileri yapmak zorundadır:
- E-Tag'in hala doğru olduğunu doğrulayın: "412" == "412"?
- Öyleyse, güncellemeyi yapın ve yeni bir E-Tag hesaplayın
Başarı yanıtını gönderin.
204 No Content
E-Tag: "543"
Başka bir istek gelirse ve PUT
yukarıdaki isteğe benzer bir işlem yapmaya çalışırsa , sunucu kodunuz ikinci kez değerlendirdiğinde, hata iletisini sağlamaktan sorumlusunuz.
- E-Tag'in hala doğru olduğunu doğrulayın: "412"! = "543"
Hata durumunda, hata yanıtını gönderin.
412 Precondition Failed
Bu aslında yazmak zorunda olduğunuz koddur. E-Tag aslında herhangi bir metin olabilir (HTTP spesifikasyonunda tanımlanan sınırlar dahilinde). Bir sayı olmak zorunda değil. Bu bir karma değer de olabilir.