Sayfa Önbelleği, CDN'ler ve İzin Banner'ları: Yanlış İzin Durumunu Sunmaktan Nasıl Kaçınılır

Hızlı Sayfalar, Yanlış İzin

Sayfa önbelleğe alma, hız ve barındırma maliyetleri için yapabileceğiniz en iyi şeylerden biridir. Aynı zamanda bir izin kurulumunu fark etmeden bozmanın en kolay yollarından biridir. Bir önbellek tam olarak kendisine söyleneni yapar: bir yanıtı bir kez saklar ve aynı anahtarla eşleşen herkese sunar. Saklanan yanıt, tek bir ziyaretçinin izin tercihine veya konumuna özgü herhangi bir şey içeriyorsa, sonraki ziyaretçi de onu alır.

Bu kılavuz, bir yayıncı sitesinin önünde tipik olarak bulunan önbellek katmanlarını — CDN uç önbellekleri, tam sayfa önbellek eklentileri, ters proxy'ler, service worker'lar ve tarayıcının kendisi — ve her birinin yanlış izin deneyimini sunmasını nasıl önleyeceğinizi kapsar.

Temel Kural: İzni Önbelleğe Alınan HTML'den Uzak Tutun

En güvenli mimari, önbelleğe alınan HTML sayfasını izin açısından nötr olarak oluşturur. Sayfa, CMP yükleyicisini ve etiketlerinizi engelli veya bekleme durumunda içerir, ancak bu belirli ziyaretçi hakkında hiçbir karar içermez. CMP daha sonra tarayıcıda çalışır, saklanan tercihi okur, banner'ın gösterilip gösterilmeyeceğine karar verir ve etiketleri buna göre serbest bırakır.

Sorunlar, sunucu izin kararlarını oluşturma anında verdiğinde başlar; örneğin:

Bu sayfa önbelleğe alındığında, ilk ziyaretçinin durumu herkesin durumu olur. Takibi reddetmiş bir ziyaretçi etiketleri zaten etkin bir sayfa alabilir veya önbellekteki kopya banner'ı zaten kapatmış birinden geldiği için yeni bir ziyaretçi hiç banner görmeyebilir.

“Vary: Cookie” Neden Nadiren Çözümdür

Ziyaretçiye özgü içerik için ders kitabı çözümü, önbelleklere cookie başlığına göre değişmelerini söylemektir. Uygulamada ziyaretçiler benzersiz değerlere sahip birçok çerez taşır; bu yüzden tüm cookie başlığına göre değişmek genellikle önbellek isabet oranınızı neredeyse sıfıra düşürür. Bazı CDN'ler önbellek anahtarını bunun yerine tek bir çerez değerinden oluşturmanıza izin verir; izin çerezinizin olası durum sayısı azsa bu uygulanabilir, ancak karmaşıklık ekler ve önbelleğe alınan kopya sayısını yine de çoğaltır. Kararı tarayıcıya taşımak daha basittir ve önbelleği verimli tutar.

Uçta Coğrafya

Birçok yayıncı bölgeye göre farklı banner'lar gösterir: AB ve Birleşik Krallık için opt-in banner'ı, ABD eyaletleri için opt-out bildirimi ve başka yerlerde daha hafif bir şey. Sunucu varyantı ziyaretçinin IP adresinden seçerse ve bu sayfa önbelleğe alınırsa, bir Avrupalı okur önbelleğe alınmış bir ABD sayfası alabilir veya tersi olabilir.

Üç kalıp bundan kaçınır:

  1. İstemci tarafı coğrafi konum. CMP'nin bölgeyi tarayıcıda belirlemesine izin verin; böylece önbelleğe alınan HTML herkes için aynı kalır.
  2. Önbellek anahtarında ülke. Uçta karar vermeniz gerekiyorsa, CDN'inizin sağladığı ülke kodunu önbellek anahtarına ekleyin. Ülke başına bir önbelleğe alınmış kopya elde edersiniz; bu öngörülebilirdir.
  3. Önbelleğe alınmayan uç mantığı. Bölgesel kararı, aksi hâlde önbelleğe alınmış bir sayfaya küçük, önbelleğe alınmayan bir değer enjekte eden bir uç işlevinde çalıştırın.

Hangisini seçerseniz seçin, belgeleyin. Coğrafya hataları yeniden üretmesi en zor hatalar arasındadır, çünkü yalnızca bir yerdeki ziyaretçilerde, başka bir yerdeki biri tarafından önbelleğe alınmış bir sayfayı alırlarsa ortaya çıkarlar.

CMP Komut Dosyasını Önbelleğe Almak

CMP yükleyicisini uzun süre önbelleğe almak performans için iyidir, ancak yapılandırma değiştiğinde bir maliyeti vardır. Tedarikçileri, amaçları veya banner metnini güncellerseniz ve komut dosyası ya da yapılandırma dosyası bir yıl boyunca önbelleğe alınmışsa, bazı ziyaretçiler eski sürümü görmeye devam eder. CMP'nizin dosyalarını nasıl sürümlediğini kontrol edin: değişen bir dosya adı veya sürüm parametresi, değişiklikleri anında yayına alırken agresif biçimde önbelleğe almanıza olanak tanır. Ayrıca CMP bunlara dayanıyorsa, kendi CDN'inizin üçüncü taraf komut dosyası URL'lerinden sorgu dizelerini çıkarmadığını doğrulayın.

Service Worker'lar ve Çevrimdışı Önbellekler

Progressive web app katmanına sahip siteler genellikle HTML'yi bir service worker'da önbelleğe alır. Aynı kural geçerlidir: belirli bir izin kararını yansıtan bir sayfayı asla saklamayın. İzinle ilgili uç noktaları ve tercih merkezi sayfalarını service worker önbelleğinden hariç tutun ve taze bir CMP yapılandırmasının her zaman alınabildiğinden emin olun.

İleri/Geri Önbelleği

Modern tarayıcılar, geri düğmesinin onları anında geri yüklemesi için son ziyaret edilen sayfaları bellekte tutar. Bir ziyaretçi bir sayfada tercih merkezini açar, izni geri çeker, ardından geri tuşuna basarsa, geri yüklenen sayfada etiketler hâlâ önceki hâlinden çalışıyor olabilir. pageshow olayını dinleyin ve persisted özelliğini kontrol edin: bir sayfa bu önbellekten geri yüklendiğinde, saklanan izin durumunu yeniden okuyun ve etiketleri buna uyacak şekilde durdurun veya başlatın.

Bir Test Rutini

Önemli Çıkarımlar

← Blog Tümünü Oku →