Varnish Cache
  • Varnish Cache
  • Varnish Cache Nedir?
    • Varnish Cache
    • Varnish Açık Kaynak Bir Proje
    • Varnish Nasıl Çalışır?
  • Varnish Başlangıç
    • Varnish Kurulumu
      • Paket Yöneticisi Kullanarak Varnish Kurulumu
      • Ubuntu ve Debian Üzerinde Varnish Kurulumu
      • Red Hat and CentOS Üzerinde Varnish Kurulumu
    • Varnish Yapılandırma
      • Yapılandırma Dosyası
      • Ubuntu ve Debian için Systemd Ek Bilgi
      • Başlangıç Seçenekleri
    • TLS/SSL Hakkında
  • Varnish HTTP
    • Varnish ve HTTP
    • Idempotence
    • State (Durum)
    • Expiration (Süre sonu)
      • Expires Header
      • Cache-Control Header
      • Expiration Precedence (Bitiş Süresi Önceliği)
    • Koşullu İstekler
      • ETag
      • Last-Modifed
      • Koşullu İstekler ile Varnish İşlemleri Nasıl Yapılır?
    • Önbellek Varyasyonları
    • Varnish Hakkında Bazı Sorular
  • Varnish Yapılandırma Dili (VCL)
    • Varnish Yapılandırma Dili (VCL)
    • Kancalar ve Alt Yordamlar
      • İstemci Tarafı Alt Yordamları
      • Arka Uç Alt Yordamları
      • Başlatma ve Temizleme Alt Yordamlar
      • Özel Alt Rutinler
    • Dönüş İfadeleri
    • Akış Şeması
    • VCL Sintaks
      • Operatörler
      • Koşullar
      • Yorumlar
      • Değerler
      • Düzenli İfadeler
      • Include
      • Varnish Modüllerini Dahil Etme
    • Arka Uçlar (Backends) ve Health Probes
    • Erişim Kontrol Listeleri (ACL)
    • VCL Değişkenleri
    • Varnish'in Dahili VCL'i
  • Önbelleği Geçersiz Kılma
    • Purging
    • Banning
      • Lurker-Friendly Bans
      • Ban Listesi
    • Zorla Önbelleği Geçersiz Kılmak
  • Backend Kullanımı
    • Backend Kullanımı
    • Backend Seçimi
    • Backend Sağlığı
    • Directors
      • Round-Robin Director
      • Random Director
      • Hash Director
      • Fallback Director
    • Grace Mode
      • Grace Mode Aktif Et
  • Loglama ve Debug
    • Loglama ve Debug
    • Varnishstat
    • Varnishtop
  • Varnish Modüller
    • Varnish Modüller
    • libvmod-geoip
    • libvmod-vsthrottle
  • Kaynaklar
    • Kaynaklar
Powered by GitBook
On this page

Was this helpful?

  1. Varnish HTTP

Önbellek Varyasyonları

Genel olarak, bir HTTP cevabı herkes için aynıdır ve her tüketici için aynı değere sahiptir. Veriler kullanıcıya özelse, teoride önbelleklenebilir olmayacaktır. Ancak, bu kuralın istisnaları vardır ve HTTP'nin bunun için bir mekanizması vardır.

HTTP, önbellek varyasyonlarını gerçekleştirmek için Vary başlığını kullanır. Vary başlığı, arka uç tarafından gönderilen bir yanıt başlığıdır. Bu başlığın değeri, değişken olması için kullanılması gereken istek başlığının adını içerir.

Çok yaygın bir örnek, Accept-Language dil tespiti için kullanılır. Tarayıcınız bu başlığı her istek üzerine gönderecektir. Tarayıcınızın desteklediği bir dizi dil veya yerel ayar içerir. Uygulamanız daha sonra çıktının dilini belirlemek için bu başlığın değerini kullanabilir. İstenilen dil URL’de veya bir çerezde görünmüyorsa, bilmenin tek yolu Accept-Language kullanmaktır.

Vary başlığı ayarlanmamışsa, önbellek (tarayıcı önbelleği veya herhangi bir aracı önbellek), farkı tanımlamanın bir yolu yoktur ve nesneyi ilk isteğe göre depolar. Bu ilk istek Hollandaca yapılırsa, önbellek kullanım ömrü boyunca tarayıcı dili ne olursa olsun diğer tüm kullanıcılara Hollandaca çıkacaktır.

Bu ciddi bir sorundur, bu durumda uygulama, Accept-Language kendi değeri olarak içeren bir Vary başlığı döndürür. İşte bir örnek:

GET / HTTP/1.1
Host: localhost
Accept-Language: nl

Uygulama, önbelleğe, isteğin Accept-Language değerini temel alarak önbelleğe alınmış nesnenin ayrı bir sürümünü tutmasını bildiren bir Vary başlığı belirler.

HTTP/1.1 200 OK
Host: localhost
Vary: Accept-Language
Hallo, deze pagina is in het Nederlands geschreven

Önbellek, bu kaynağın Hollanda dilinde bir sürümü olduğunu bilir ve ayrı olarak depolar. Bir sonraki istek yalnızca İngilizce'yi destekleyen bir tarayıcıdan gönderildiğinde, Hollandaca çıktı içeren önbellek nesnesi kullanılmayacaktır. Yeni bir arka uç isteği yapılacak ve çıktı ayrı olarak depolanacak.

Varnish, Vary başlığını dikkate alır ve standart tanımlayıcıların üstündeki önbellekte varyasyonlar ekler. Önbelleğe alınmış bir nesnenin tipik tanımlayıcıları, web site adı (veya hiçbir site adı belirlenmemişse IP) ve URL'dir. Varnish bir önbellek varyasyonu fark ettiğinde, bu sürüm için bir önbellek nesnesi oluşturur.

PreviousKoşullu İstekler ile Varnish İşlemleri Nasıl Yapılır?NextVarnish Hakkında Bazı Sorular

Last updated 6 years ago

Was this helpful?