ETag
Bir ETag, web sunucusu veya uygulamanız tarafından ayarlanan bir HTTP cevap başlığıdır (response header). Kaynağın durumuna karşılık gelen benzersiz bir değer içerir. Bu kaynak için benzersiz bir değer oluşturulmaktır. Bu değer, URL'ye ve kaynağın dahili değişiklik tarihine bağlı olarak bir md5 veya sha değeri olabilir. Eşsiz olduğu sürece herhangi bir şey olabilir.
HTTP/1.1 200 OK
Host: localhost
Etag: 7c9d70604c6061da9bb9377d3f00eb27
Content-type: text/html; charset=UTF-8
Hello world
Bir tarayıcı bu ETag'ı görür görmez değerini saklar. Bir sonraki istek üzerine, ETag'ın değeri sunucuya If-None-Match istek başlığında (request header) geri gönderilecektir.
GET /if_none_match.php HTTP/1.1
Host: localhost
User-Agent: curl/7.48.0
If-None-Match: 7c9d70604c6061da9bb9377d3f00eb27
Sunucu bu If-None-Match başlığını alır ve değerin göndermek üzere olduğu ETag'den farklı olup olmadığını kontrol eder. ETag değeri Eşleşme Yok (If-None-Match) değerine eşitse, web sunucusu veya uygulamanız değerin değişmediğini belirtmek için bir HTTP/1.1 304 Not Modified yanıt başlığı döndürebilir.
HTTP/1.0 304 Not Modified
Host: localhost
Etag: 7c9d70604c6061da9bb9377d3f00eb27
Tarayıcı 304'ü alır ve eski verileri çıkartabileceğini bilir. If-None-Match değeri ETag ile eşleşmiyorsa, web sunucusu veya uygulamanız HTTP/1.1 200 OK cevap başlığı ve elbette yeni ETag ile birlikte tam cevabı geri verecektir. Bu, kaynakları korumanın çok iyi bir yoludur. Temel amaç bant genişliğini azaltmak olsa da, doğru şekilde uygularsanız, bellek, CPU döngüleri ve disk G/Ç tüketimini azaltmanıza da yardımcı olur.
Last updated
Was this helpful?