
Cloudflare, Cache Rules'a Vary desteğini ekledi
Cloudflare, Cache Rules'ta Vary desteğini kullanıma sundu; özellik ücretsiz plan dahil tüm planlarda var. Kaynak hangi istek alanlarının yanıtı değiştirebileceğini bildiriyor, başlık başına normalleştirme, aynen geçirme veya atlama kararını operatör veriyor.
Cloudflare, HTTP'nin Vary yanıt başlığı için Cache Rules'ta destek yayınladı. Özellik ücretsiz plan dahil tüm planlarda kullanılabiliyor. Blog yazısı Vary için "HTTP'nin henüz iyileştirmediğimiz en çirkin parçası" ifadesini kullanıyor; alıntı Mark Nottingham'a ait.
Başlık, tek bir URL'nin birden fazla doğru yanıtı olabilmesi yüzünden var: sunucu farklı istemcilere farklı diller, görüntü biçimleri ya da sıkıştırma şemaları gönderebilir. Vary'yi yok sayan önbellek bir API istemcisine HTML, tarayıcıya JSON dönebilir; her ham değeri ayrı sayan önbellek ise tek bir kullanılabilir yanıtı binlerce neredeyse aynı varyanta böler.

Vary'nin söylemediği
Vary, önbelleğe hangi istek alanlarının yanıtı etkileyebileceğini söyler; yanıtın neyi temsil ettiğini söylemez. Cloudflare'in örneğinde kaynak yalnızca İngilizce, Fransızca ve Almanca sunuyor; iki istemci Accept-Language: en-US, fr;q=0.8 ve Accept-Language: fr;q=0.8, en-GB gönderiyor. İkisi de İngilizceyi tercih ediyor ve aynı baytları alabiliyor; ancak ham değerleri karşılaştıran önbellek onları ayrı varyantlar olarak saklıyor.
Sorun alan sayısıyla büyüyor: tek alandaki on değer on varyant demek, üç alandaki on değer ise bin kombinasyon. Cloudflare'in analizine göre 50.000 popüler siteden 120 milyondan fazla yanıt incelendiğinde 3.000'e yakınının dört veya daha fazla alana göre değiştiği görülüyor — bazıları 10, 23, hatta 47 alan kullanıyor.
Üç eylem: normalize, passthrough, bypass
Yeni modelde kaynak başlıkları Vary ile bildiriyor, Cache Rule ise Cloudflare'in her birini nasıl işleyeceğini belirliyor. Önerilen varsayılan normalize, Accept, Accept-Language ve Accept-Encoding değerlerini önbellek eşleşmesinden önce yeniden yazıyor: harfleri küçültüp kalite değerine göre sıralıyor, böylece eşdeğer istekler tek yanıtı paylaşıyor. passthrough ham baytları koruyor — büyük-küçük harf, boşluk, sıra ve yinelenen değerler dahil — ve tam değerin yanıtı değiştirdiği başlıklar için uygun. bypass ise kaynak o başlığı Vary'de belirttiğinde yanıtı hiç saklamıyor; çerezler ve User-Agent için düşünülmüş. Vary: * içeren yanıt hiçbir zaman saklanmıyor.
Yapılandırma ve ayrıntılar
Vary ayarları Cache Rules içinde (panoda: Caching > Cache Rules) ve ayrıca http_request_cache_settings aşamasındaki Rulesets API ile Terraform üzerinden yapılıyor. Cloudflare sorumluluğun kaynakta kaldığını vurguluyor: istek alanlarına göre değişebilen her önbelleklenebilir yanıt, hatalar dahil, uygun Vary başlığını tutarlı biçimde döndürmeli. Bir kuralı değiştirmek mevcut kayıtları otomatik temizlemiyor: eski varyantlar süresi dolana kadar kalıyor; bir kaynağı temizlemek tüm Vary varyantlarını kapsıyor.
SiTech — AI destekli web geliştirme
Hızlı ve modern web siteleri kuruyor, AI'yı gerçek iş akışlarına taşıyoruz. Projeniz veya sorunuz mu var? Yardımcı olmaktan mutluluk duyarız.