17 Nisan 2021 Cumartesi

Son Oluşturulan ETAG başlıkları Nasıl Oluşturulur

 

 Sunucular, koşullu istekleri yönlendirmek için Last-Modified ve ETAG yanıt başlıklarını kullanır. İstemcileri istekleri koşullu yapmak için aşağıdaki istek başlıklarını kullanır.

* Önbelleğe alınmış gösterimleri doğrulamak için If-Modified ve If-Non-Match

* Eşzamanlılık kontrolünün ön koşulları olarak If-Unmodified-Since ve If-Match

GET istekleri müşterinin amacı yalnızca yeni bir istek temsil etmesidir. Gösterim belirtilen saat ve tarihten sonra değiştirildiyse sağlanan varlık etiketlerinin hiçbiri bundan sonra eşleşmez.

Eşzamanlılık kontrolü için amaç bir işlem gerçekleştirmeyi talep etmektir. Sadece gösterim belirtilen saat ve tarihten sonra değişmediyse sağlanan varlıkların etiketleri ile eşleşirse.

Bu istek başlıklarının her ikisi de istemcilerin ön koşullu isteklerdir.

Koşullu isteklerin işlemenin etkinliği sunucunun ne kadar hızlı yapabileceğine bağlıdır.

Kaynakları depolamak için kullanılan veri deposu üzerinde kontrolünüz varsa, depolama alanını değiştirin.


Her kaynağa erişim için şema ve değiştirilen saat - tarih için bir zaman damgası ve sürüm takip etmek için bir sıra numarası kullanın.

Verilerin her değiştiği alanlarda; ilişkisel veritabanı söz konusu olduğunda bunları otomatik olarak güncellemek için veritabanı tetikleyicileri kullanın.

Eğer depoma şemanızın değiştirilmesine veya veri deponuzu bakıma izin verilmiyorsa zaman damgalarını veya sıra numaralarının işaretlemek için bazı veri  kaynakları işlevlerini kullanabilirsiniz.

ETAG başlığı için bir değer oluşturur. Bu değeri ve bir zaman damgasını ayrı bir tabloda saklayın veya sunucunun tüm gösterimi yeniden yüklemesine gerek kalmadan veri deposu ile bunun hesaplayın.

Temsil edilen boyut büyük değilse MD5 oluşturmak için temsil gövdesini kullanın ETAG için karma değerdir. Alternatif olarak her seferinde değişen bazı veri alanlarını kullana kaynak güncellenir.

Kaynağın her temsili için farklı bir ETAG değeri kullandığınızdan emin olun.

Çoğu web sunucusu statik için ETAG ve Last-Modified üst bilgilerinin otomatik olarak eklemenize izin verir. Uygulama kaynakları için bunları programlı bir şekilde oluşturmanız gerekir.

Bu başlıklardan Last-Modified bir saniyelik çözünürlüğü vardır ve bu nedenle zayıf bir doğrulayıcıdır. Bir varlık etiketi ise değeri değiştirilebildiği için güçlü bir doğrulayıcıdır. ( Sunucu gösteriminden her değiştiğinde) Bir varlık etiketi, bir nesnenin karması gibidir. Bir kaynağı temsillerini karşılaştırmak için varlık etiketlerini kullanabilirsiniz.

Koşullu içeriği desteklemek için hem Son Değiştirilmiş hem de ETAG başlıklarını kullanmanıza gerek yoktur. Koşullu istekleri desteklemek için tutarlı bir şekilde birini veya ikisini kullanabiliriz.

Yeni bir web hizmeti tasarlanıyorsa bir zaman damgası ve bir sürüm sayacı veri deponuza ekleyin. Çoğu ilişkisel veritabanı kendine özgü bazı tetikleyicileri kullanmamıza izin verir. Verilerin her değişiminden bu değerlerin otomatik olarak güncellemek ve arttırmak için. Bu durumda sunucudaki tüm bilgilerin yüklenmesi gerekmediğinden genellikle en verimli yaklaşım olur. 

Bazı web çevreleri kodunuzun oluşmasına izin verdikten sonra ETAG başlıkları otomatik olarak oluşur.  Bu işi tüm temsilin bir karmasını hesaplayarak ortaya çıkarır. Eğer temsil için veritabanın dan yüklenmesi zaman alırsa iyi performans göstermez.

Kaynağa ait olan verilerin birden fazla tablo oluşturması durumunda en son olanı seçmeniz gerekir.  Bu tablolardaki veriler son değiştirilen zaman damgası ve ilgili sürümün bir karmasında kullanılan verileri içerir.

İlişkisel olmayan veri depoları için kullanmanız gereken teknikler uygulamadan uygulamaya farklılık gösterir.

ETAG değerleri oluşturmak için sürüm numaralarını kullandığınızda bu başlık değerleri temsile özeldir. Örneğin bir temsil kaynağının gönderimleri ortam türüne göre değişir, ortam türü değerlerinin kullanımı ETAG değerlerinin gösterimini yapmak için sürüm tanımlayıcıları ile birlikte kullanılır.


Hiç yorum yok:

Yorum Gönder