Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Önbellek davranışını yönetme

Firebase Hosting, sitenizi mümkün olduğunca hızlı hale getirmek için güçlü bir global CDN kullanır.

İstenen statik içerik CDN'de otomatik olarak önbelleğe alınır . Sitenizin içeriğini yeniden dağıtırsanız, Firebase Hosting bir sonraki isteğe kadar CDN'deki önbelleğe alınmış tüm statik içeriğinizi otomatik olarak temizler.

Ancak, Bulut İşlevleri ve Bulut Çalıştırması hizmetleri dinamik olarak içerik oluşturduğundan, belirli bir URL'nin içeriği kullanıcı girişi veya kullanıcının kimliği gibi şeylere göre değişebilir. Bunu hesaba katmak için, arka uç koduyla işlenen istekler varsayılan olarak CDN'de önbelleğe alınmaz .

Bununla birlikte, dinamik içerik için önbellek davranışını yapılandırabilirsiniz . Örneğin, bir işlev yalnızca düzenli aralıklarla yeni içerik oluşturuyorsa, oluşturulan içeriği en az kısa bir süre için önbelleğe alarak uygulamanızı hızlandırabilirsiniz.

İçerik tetiklenen bir işlev yerine CDN'den sunulduğu için işlev yürütme maliyetlerini de azaltabilirsiniz. Bulut İşlevleri ve Bulut Çalışması belgelerinde işlev yürütme ve hizmetlerini en iyi duruma getirme hakkında daha fazla bilgi edinin.

Google'ın web geliştiricisi dokümanlarında önbellekleme davranışı hakkında daha fazla bilgi edinin.

Önbellek Denetimini Ayarla

Dinamik içerik için önbelleği yönetmek için kullandığınız ana araç Cache-Control üst bilgisidir. Bu üstbilgiyi yapılandırarak, içeriğinizin ne kadar süreyle önbelleğe alınabileceğini hem tarayıcıya hem de CDN'ye iletebilirsiniz. İşlevinizde Cache-Control şu şekilde ayarladınız:

 res.set('Cache-Control', 'public, max-age=300, s-maxage=600');
 

Bu örnek başlığında, yönergeler üç şey yapar:

  • public - Önbelleği public olarak işaretler. Bu, hem tarayıcının hem de ara sunucuların (Firebase Hosting için CDN anlamına gelir) içeriği önbelleğe alabileceği anlamına gelir.

  • max-age - Tarayıcıya ve CDN'ye içeriği kaç saniye önbellekleyebileceklerini bildirir. Ayarlanan süre sona erdiğinde, tarayıcı ve CDN'nin içeriği başlangıç ​​sunucusuyla yeniden doğrulaması gerekir. Örnek başlığında, tarayıcının ve s-maxage içeriği beş dakika boyunca önbelleğe s-maxage (CDN önbelleğe s-maxage ilgili belirli kontroller için aşağıdaki s-maxage bakın).

  • s-maxage - Yalnızca CDN önbelleğe alma için max-age yönergesini geçersiz kılar; CDN'ye içeriği kaç saniye önbelleğe alabileceğini bildirir. Ayarlanan süre sona erdiğinde, CDN içeriği başlangıç ​​sunucusuyla yeniden doğrulamalıdır. Örnek üstbilgisinde, yalnızca CDN için max-age ayarını geçersiz kılıyoruz ve CDN'nin içeriği on dakika boyunca önbelleğe almasına izin veriyoruz.

max-age ve s-maxage , değerlerini eski içerik alan kullanıcılarla rahat edeceğiniz en uzun süreye ayarlayın. Bir sayfa birkaç saniyede bir değişirse, küçük bir zaman değeri kullanın. Ancak, diğer içerik türleri saatler, günler ve hatta aylar boyunca güvenli bir şekilde önbelleğe alınabilir.

Mozilla Geliştirici Ağı'nda ve Google'ın web geliştirici dokümanlarında Cache-Control başlığı hakkında daha fazla bilgi edinebilirsiniz.

Önbelleğe alınan içerik ne zaman sunulur?

Tarayıcı ve CDN içeriğinizi aşağıdakilere göre önbelleğe alır:

  • Ana bilgisayar adı
  • Yol
  • Sorgu dizesi
  • Vary üstbilgisinde belirtilen istek başlıklarının içeriği

Başlıkları değiştirir

Vary başlığı , uygun bir yanıt sağlamak için hangi istek başlıklarının kullanılması gerektiğini belirler (önbelleğe alınan içeriğin geçerli olup olmadığı veya içeriğin kaynak sunucu ile yeniden doğrulanması gerekip gerekmediği).

Çoğu zaman, Vary başlığı hakkında endişelenmenize gerek yoktur. Firebase Hosting, yaygın durumlar için yanıtınıza otomatik olarak uygun bir Vary başlığı ayarlar. Buna, kullandığınız herhangi bir oturum çerezi veya yetkilendirme başlığının önbellek anahtarının bir parçası haline getirildiğinden emin olunması, içeriğin yanlışlıkla sızmasını önler.

Bazı gelişmiş kullanım durumlarında, önbelleği etkilemek için ihtiyacınız olan başka başlıklarınız olabilir. Bu durumda, Vary üstbilgisini yanıtınıza ayarlayabilirsiniz:

 res.set('Vary', 'Accept-Encoding, X-My-Custom-Header');
 

Bu ayarlarla, farklı X-My-Custom-Header başlıklarına sahip iki özdeş istek ayrı olarak önbelleğe alınır.

Çerezleri kullanma

Firebase Hosting'i Cloud Functions veya Cloud Run ile birlikte kullanırken, çerezler genellikle gelen isteklerden çıkarılır. Bu, verimli CDN önbellek davranışına izin vermek için gereklidir. Yalnızca özel olarak adlandırılan __session çerezinin uygulamanızın yürütülmesine geçmesine izin verilir.

Varsa, __session çerezi otomatik olarak önbellek anahtarının bir parçası haline getirilir, yani farklı çerezlere sahip iki kullanıcının diğerinin önbelleğe alınmış yanıtını alması imkansızdır. __session çerezini yalnızca uygulamanız kullanıcı yetkisine bağlı olarak farklı içerik __session kullanın.