Catch up on everthing we announced at this year's Firebase Summit. Learn more

Önbellek davranışını yönet

Firebase Hosting, sitenizi olabildiğince hızlı hale getirmek için güçlü bir küresel CDN kullanır.

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

Ancak Cloud Functions ve Cloud Run 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. Bu hesaba için arka uç kod tarafından işlenen istekleri varsayılan olarak CDN üzerinde önbelleğe yoktur.

Dinamik içerik için yapabilirsiniz, ama, yapılandırmak önbelleğe alma davranışı. Örneğin, bir işlev yalnızca periyodik olarak yeni içerik üretiyorsa, 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ğundan, işlev yürütme maliyetlerini de potansiyel olarak azaltabilirsiniz. Fonksiyon yürütme ve hizmetler de optimize etme konusunda daha okuyun Bulut Fonksiyonlar ve Bulut Çalıştır belgelerine.

Google'ın içinde davranışını önbelleğe hakkında daha fazla bilgi web geliştirici belgelerine .

Önbellek Kontrolünü Ayarla

Dinamik içerik için önbelleği yönetmek için kullandığınız ana araçtır Cache-Control başlık. Bu başlığı yapılandırarak, içeriğinizin ne kadar süreyle önbelleğe alınabileceğini hem tarayıcıya hem de CDN'ye bildirebilirsiniz. Senin işlevinde, set Cache-Control şöyle:

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

Bu örnek başlıkta, direktifler üç şey yapar:

  • public - Marks olarak önbellek public . Tarayıcı ve (Barındırma Firebase için CDN anlamında) ara sunucuları hem içeriği önbelleğe alabilir Bu araçlar.

  • max-age - onlar içeriği önbelleğe alabilir kaç saniye tarayıcı ve CDN söyler. Ayarlanan süre sona erdiğinde, tarayıcı ve CDN, içeriği kaynak sunucu ile yeniden doğrulamalıdır. Örnek başlığında, biz beş dakika içeriği (bkz önbelleğe tarayıcı ve CDN izin verdiğinizden s-maxage CDN önbelleğe alma için spesifik kontroller için aşağıda).

  • s-maxage - geçersiz kılar max-age için yönerge sadece-CDN önbelleğe; CDN'ye içeriği kaç saniye önbelleğe alabileceğini söyler. Ayarlanan süre sona erdiğinde, CDN, içeriği kaynak sunucuyla yeniden doğrulamalıdır. Örnek başlığında, biz ayarını geçersiz kılma ediyoruz max-age CDN yalnızca ve CDN on dakika içeriği önbelleğe için izin.

İçin max-age ve s-maxage , en uzun miktarına değerlerini ayarlamak o içeriğin eski alan kullanıcılarla Sen rahat. Bir sayfa birkaç saniyede bir değişiyorsa, küçük bir zaman değeri kullanın. Ancak, diğer içerik türleri saatlerce, günlerce ve hatta aylarca güvenle önbelleğe alınabilir.

Sen hakkında daha fazla bilgi edinebilirsiniz Cache-Control üzerinde başlığında Mozilla Geliştirici Ağı ve Google'ın içinde web geliştirici belgelerinde .

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

Tarayıcı ve CDN, içeriğinizi aşağıdakilere dayalı olarak önbelleğe alır:

  • ana bilgisayar adı
  • Yol
  • sorgu dizesi
  • Belirtilen istek başlıklarının içeriği Vary başlığını

Başlıkları değiştir

Vary başlık başlıkları (önbelleğe alınmış içerik geçerli olduğunu ya da içerik orijini, sunucu ile revalidated olmalıdır eğer olsun) uygun bir tepki sağlamak için kullanılmalıdır talep belirler.

Firebase otomatik Barındırma uygun ayarlar Vary genel durumlar için Yanıtınızdan başlığını. Hakkında Çoğu zaman, sen endişe gerekmez Vary başlığını. Ancak, bazı gelişmiş kullanım durumlarında, önbelleği etkilemeniz gereken başka başlıklara sahip olabilirsiniz. Bu durumda, sen ayarlayabilirsiniz Vary Yanıtınızdan başlığını. Örneğin:

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

Bu durumda, değer Vary başlığıdır:

vary: X-My-Custom-Header, x-fh-requested-host, accept-encoding, cookie, authorization

Bu ayarlarla, farklı olan iki aksi özdeş istekleri X-My-Custom-Header başlıklarında ayrı ayrı önbelleğe alınır. Barındırma ekler Not olduğunu Cookie ve Authorization için Vary bir istek dinamik içerik için yapıldığında varsayılan olarak başlığını. Bu, kullandığınız herhangi bir oturum veya tanımlama bilgisi yetkilendirme başlığının önbellek anahtarının bir parçası olmasını sağlayarak yanlışlıkla içerik sızmasını önler.

Ayrıca not edin:

  • Sadece GET ve HEAD istekleri önbelleğe alınabilir. Diğer yöntemleri kullanan HTTPS istekleri hiçbir zaman önbelleğe alınmaz.

  • Ayarları eklerken dikkatli olun Vary başlığını. Ne kadar çok ayar eklerseniz, CDN'nin önbelleğe alınmış içerik sunma olasılığı o kadar azalır. Ayrıca unutmamak Vary istek başlıklarına değil, yanıt başlıkları dayanmaktadı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 için izin vermek için gerekli olan önbellek davranış . Sadece özel olarak adlandırılmış __session çerez uygulamanızın yürütmeye geçmesine izin verilir.

Mevcut olduğunda, __session çerez otomatik yanıtı önbelleğe diğer 's almak için farklı kurabiye iki kullanıcı için imkansız yani önbellek anahtarın bir parçası yapılır. Yalnızca kullanmak __session uygulama kullanıcı yetkilendirme bağlı olarak farklı içerik sunup sunmadığını çerez.