Google, Chrome’un Geri/İleri Önbellek (BFCache) davranışında önemli bir değişiklik yaparak, bir web yöneticisi bir sayfayı tarayıcının önbelleğinde saklamamayı belirtse bile web sayfalarının önbellekte saklanmasına olanak tanıyor.
Google’ın web.dev sitesi “bfcache, kullanıcı uzaklaşırken bir sayfanın tam anlık görüntüsünü (JavaScript yığını dahil) saklayan bir bellek içi önbellektir” diye açıklıyor.
“Sayfanın tamamı bellekte olduğundan, kullanıcı geri dönmeye karar verirse tarayıcı sayfayı hızlı ve kolay bir şekilde geri yükleyebilir.”
Site yöneticileri, “Cache-control:” başlığını kullanarak web sayfalarının tarayıcının önbelleğinde nasıl saklanacağını belirleyebilir. Seçeneklerden biri, web sitesi yanıtının tarayıcıda saklanmasını önleyen “Önbellek kontrolü: depolama yok” başlığını kullanmaktır.
Ancak, tarayıcılar bu başlığı kullanırlarsa web sayfalarını bfcache’de saklamazlar ve bu durum, kullanıcılar geri ve ileri tarayıcı düğmelerini kullanarak bu sayfalara döndüğünde performans sorunlarına neden olur.
Google, bfcache için “mağaza yok” başlığını yok sayacak
Google, HTTPS sayfalarında “Önbellek kontrolü: mağaza yok” başlığı mevcut olsa bile web sayfalarının BFCache’de saklanmasını önerir. Bu yaklaşım, anında geri/ileri gezinme örneklerini artıracak ve daha iyi bir deneyime yol açacaktır.
Google mühendisi Fergal Daly, asıl amacın hassas veriler içeren sayfaların geri yüklenmesini engellemek olmadığını söylüyor. Bunun yerine, kullanıcının artık erişmemesi gereken hassas verileri içeren sayfaların geri yüklenmesini önlemeye odaklanılır.
Çerezlerde herhangi bir değişiklik olmazsa, tarayıcının HTTP isteklerinin ve dolayısıyla erişim kararlarının tutarlı kalacağı varsayımı yapılır. Buradaki zorluk, erişim kaybına yol açan sunucu tarafı değişikliklerinde yatmaktadır.
Açık sayfalardaki değişiklikleri yansıtmak için EventSource gibi teknolojileri kullanan siteler için bu güncellemeler, BFCache’den tahliyeyi tetikleyecek veya geri yükleme sonrasında olayları hemen iletecektir. Anında güncelleme mekanizmaları olmayan siteler için, kullanıcıların güncel olmayan verilere erişme riski vardır ve önerilen BFCache davranışı bu durumu potansiyel olarak daha da kötüleştirebilir.
Google, öncelikle kanalları test etme özelliğini kullanıma sunarak ve etkiyi anlamak için yeterli veri toplayarak bu endişeleri gidermeye çalışıyor.
Bazıları, bu değişikliğin “Önbellek kontrolü: mağaza yok” başlığının tarayıcının web sayfasını önbelleğe almayacağı anlamına geldiğini varsayan web geliştiricilerine verilen sözleri bozabileceği yönünde endişelerini dile getirdi.
Opera geliştiricisi Daniel Bratell, “Bana göre bu hassas bir alana dokunuyor gibi görünüyor ve bunun gerçek dünyada nasıl sonuçlanacağından emin değilim” dedi.
“Önbellek kontrolü: no-store aşırı derecede aşırı kullanılıyorsa ve listelediğiniz rakamlar durumun böyle olduğunu gösteriyor gibi görünse bile, web geliştiricilerine böyle bir kaynağın sayfa kapatıldığında sonsuza kadar yok olacağına dair bir söz verilmedi mi? artık gösterilmiyor ve bu makul bir şekilde yerine getirilemeyecek bir söz mü?”
Ancak Daly, bu başlığın bir web sayfasını bfcache’de değil, yalnızca normal tarayıcı önbelleğinde saklamamayı vaat ettiğini söylüyor.
Daly, “CCNS’nin BFCaching’i önleyeceğine dair açık bir söz yok. CCNS başlığı veya genel olarak tüm Önbellek kontrol direktifleri, HTTP önbelleğe almayı kontrol etmeyi amaçlamaktadır, dolayısıyla açık söz HTTP önbelleğiyle ilgilidir” diye açıkladı.
“BFCache, HTTP önbelleğe alma işleminin bir parçası değildir ve geliştiriciler, CCNS başlığını, sayfanın BFCached olmayacağına dair bir söz olarak yorumlamamalıdır.”
Google Chrome geliştiricileri, BFCache’in “Önbellek kontrolü: mağaza yok” yönergesiyle nasıl etkileşimde bulunduğunu yeniden tanımlayarak, kullanıcı güvenliğinden ve gizliliğinden ödün vermeden daha duyarlı bir tarama deneyimi oluşturmayı umuyor.