Aracılığıyla paylaş


Önbelleğe alma nasıl işler?

Önemli

Microsoft tarafından sunulan Azure CDN Standard (klasik) 30 Eylül 2027'de kullanımdan kaldırılacaktır. Hizmet kesintisini önlemek için Azure CDN Standard'ınızı 30 Eylül 2027'ye kadar Microsoft (klasik) profillerinden Azure Front Door Standard veya Premium katmanına geçirmeniz önemlidir. Daha fazla bilgi için bkz . Microsoft'tan Azure CDN Standard (klasik) kullanımdan kaldırma.

Edgio'dan Azure CDN, 15 Ocak 2025'te kullanımdan kaldırıldı. Daha fazla bilgi için bkz . Edgio'dan Azure CDN kullanımdan kaldırma hakkında SSS.

Bu makalede genel önbelleğe alma kavramlarına ve Azure Content Delivery Network'ün performansı geliştirmek için önbelleğe almayı nasıl kullandığına genel bir bakış sağlanır. İçerik teslim ağı uç noktanızda önbelleğe alma davranışını özelleştirme hakkında bilgi edinmek isterseniz bkz . Azure Content Delivery Network önbelleğe alma davranışını önbelleğe alma kurallarıyla denetleme ve Sorgu dizeleriyle Azure Content Delivery Network önbelleğe alma davranışını denetleme.

Önbelleğe alma işlemine giriş

Önbelleğe alma, verileri yerel olarak depolama işlemidir, böylece bu veriler için gelecekteki isteklere daha hızlı erişilebilir. En yaygın önbelleğe alma türü olan web tarayıcısı önbelleğinde, bir web tarayıcısı statik verilerin kopyalarını yerel bir sabit sürücüde yerel olarak depolar. Web tarayıcısı önbelleğe alma özelliğini kullanarak sunucuya birden çok gidiş dönüş yapmaktan kaçınabilir ve bunun yerine aynı verilere yerel olarak erişerek zaman ve kaynak tasarrufu sağlayabilir. Önbelleğe alma, statik görüntüler, CSS dosyaları ve JavaScript dosyaları gibi küçük, statik verileri yerel olarak yönetmek için uygundur.

Benzer şekilde, önbelleğe alma, kullanıcıya yakın uç sunucularda bulunan bir içerik teslim ağı tarafından, kaynak öğeye geri dönen isteklerden kaçınmak ve son kullanıcı gecikme süresini azaltmak için kullanılır. Yalnızca tek bir kullanıcı için kullanılan bir web tarayıcısı önbelleğinden farklı olarak, içerik teslim ağı paylaşılan bir önbelleğe sahiptir. İçerik teslim ağı paylaşılan önbelleğinde, bir kullanıcının dosya isteği başka bir kullanıcı tarafından kullanılabilir ve bu da kaynak sunucuya yapılan istek sayısını büyük ölçüde azaltır.

Sık değişen veya tek bir kullanıcı için benzersiz olan dinamik kaynaklar önbelleğe alınamaz. Ancak bu tür kaynaklar, performans geliştirmeleri için Azure içerik teslim ağında dinamik site hızlandırma (DSA) iyileştirmesinin avantajlarından yararlanabilir.

Önbelleğe alma, kaynak sunucu ile son kullanıcı arasında birden çok düzeyde gerçekleşebilir:

  • Web sunucusu: Paylaşılan önbellek kullanır (birden çok kullanıcı için).
  • İçerik teslim ağı: Paylaşılan önbellek kullanır (birden çok kullanıcı için).
  • İnternet hizmet sağlayıcısı (ISS): Paylaşılan önbellek kullanır (birden çok kullanıcı için).
  • Web tarayıcısı: Özel önbellek (bir kullanıcı için) kullanır.

Her önbellek genellikle kendi kaynak güncelliğini yönetir ve bir dosya eskidiğinde doğrulama gerçekleştirir. Bu davranış, HTTP önbelleğe alma belirtimi olan RFC 7234'te tanımlanır.

Kaynak güncelliği

Önbelleğe alınmış bir kaynak eski veya eski (kaynak sunucusundaki ilgili kaynağa göre) olabileceğinden, içeriğin ne zaman yenileneceğini denetlemek için herhangi bir önbelleğe alma mekanizması önemlidir. Zaman ve bant genişliği tüketiminden tasarruf etmek için, önbelleğe alınmış bir kaynak her erişildiğinde kaynak sunucusundaki sürümle karşılaştırılamaz. Bunun yerine, önbelleğe alınmış bir kaynağın yeni olduğu kabul edildiği sürece en güncel sürüm olduğu varsayılır ve doğrudan istemciye gönderilir. Önbelleğe alınmış bir kaynak, yaşı önbellek ayarı tarafından tanımlanan yaş veya sürenin altında olduğunda yeni olarak kabul edilir. Örneğin, bir tarayıcı bir web sayfasını yeniden yüklediğinde, sabit sürücünüzdeki önbelleğe alınmış her kaynağın yeni olduğunu doğrular ve bu kaynağı yükler. Kaynak yeni değilse (eski), sunucudan güncel bir kopya yüklenir.

Doğrulama

Bir kaynak eski olarak kabul edilirse, kaynak sunucudan önbellekteki verilerin hala kaynak sunucudaki veriyle eşleşip eşleşmediğini belirlemek için kaynağı doğrulaması istenir. Dosya kaynak sunucuda değiştirilmişse, önbellek kaynağın sürümünü güncelleştirir. Aksi takdirde, kaynak yeniyse veriler önce doğrulanmadan doğrudan önbellekten teslim edilir.

İçerik teslim ağı önbelleğe alma

Önbelleğe alma, bir içerik teslim ağının teslimi hızlandırmak ve görüntüler, yazı tipleri ve videolar gibi statik varlıklar için kaynak yükünü azaltmak için çalışma şekline tam sayıdır. İçerik teslim ağı önbelleğinde statik kaynaklar, bir kullanıcı için daha yerel olan stratejik olarak yerleştirilmiş sunucularda seçmeli olarak depolanır ve aşağıdaki avantajları sunar:

  • Web trafiğinin çoğu statik olduğundan (örneğin, resimler, yazı tipleri ve videolar), içerik teslim ağı önbelleğe alma, içeriği kullanıcıya yaklaştırarak ağ gecikme süresini azaltır ve böylece verilerin kat ettiği mesafeyi azaltır.

  • İşi bir içerik teslim ağına boşaltarak önbelleğe alma, ağ trafiğini ve kaynak sunucudaki yükü azaltabilir. Bunun yapılması, çok sayıda kullanıcı olsa bile uygulamanın maliyetini ve kaynak gereksinimlerini azaltır.

Önbelleğe alma işleminin bir web tarayıcısında uygulanmasına benzer şekilde, önbellek yönergesi üst bilgileri göndererek bir içerik teslim ağında önbelleğe alma işleminin nasıl gerçekleştirildiğini denetleyebilirsiniz. Önbellek yönergesi üst bilgileri, genellikle kaynak sunucu tarafından eklenen HTTP üst bilgileridir. Bu üst bilgilerin çoğu başlangıçta istemci tarayıcılarında önbelleğe almayı ele almak için tasarlanmış olsa da, artık içerik teslim ağları gibi tüm ara önbellekler tarafından da kullanılmaktadır.

Önbellek güncelliğini tanımlamak için iki üst bilgi kullanılabilir: Cache-Control ve Expires. Cache-Control daha günceldir ve her ikisi de varsa' den Expiresönceliklidir. Doğrulama için kullanılan iki tür üst bilgi de vardır (doğrulayıcılar olarak adlandırılır): ETag ve Last-Modified. ETag daha günceldir ve her ikisi de tanımlanmışsa' den Last-Modifiedönceliklidir.

Önbellek yönergesi üst bilgileri

Azure Content Delivery Network, önbellek süresini ve önbellek paylaşımını tanımlayan aşağıdaki HTTP önbellek yönergesi üst bilgilerini destekler.

Önbellek Denetimi:

  • Web yayımcılarına içerikleri üzerinde daha fazla denetim sağlamak ve üst bilgi sınırlamalarını ele almak için HTTP 1.1'de Expires kullanıma sunulmuştur.
  • Expires Hem hem de Cache-Control tanımlanmışsa üst bilgiyi geçersiz kılar.
  • İstemciden içerik teslim ağı POP'a bir HTTP isteğinde kullanıldığında, Cache-Control varsayılan olarak tüm Azure Content Delivery Network profilleri tarafından yoksayılır.
  • Kaynak sunucudan içerik teslim ağı POP'a bir HTTP yanıtında kullanıldığında, Cache-Control varsayılan olarak tüm Azure Content Delivery Network profilleri tarafından kabul edilir. Azure CDN ayrıca RFC 7234 - Köprü Metni Aktarım Protokolü'nde (HTTP/1.1): Önbelleğe alma (ietf.org) içindeki Önbellek Denetimi yönergeleri için önbelleğe alma davranışlarını da kabul eder.

Sona eri -yor:

  • HTTP 1.0'da tanıtılan eski üst bilgi; geriye dönük uyumluluk için desteklenir.
  • İkinci duyarlık ile tarih tabanlı bir süre sonu zamanı kullanır.
  • benzeri.Cache-Control: max-age
  • Mevcut olmadığında Cache-Control kullanılır.

Pragma:

  • Varsayılan olarak Azure Content Delivery Network tarafından kabul edilmez.
  • HTTP 1.0'da tanıtılan eski üst bilgi; geriye dönük uyumluluk için desteklenir.
  • Aşağıdaki yönergeyle bir istemci isteği üst bilgisi olarak kullanılır: no-cache. Bu yönerge, sunucuya kaynağın yeni bir sürümünü teslim etme talimatını verilmektedir.
  • Pragma: no-cache eşdeğeri, Cache-Control: no-cache olur.

Doğrulayıcılar

Önbellek eski olduğunda, bir dosyanın önbelleğe alınmış sürümünü kaynak sunucudaki sürümle karşılaştırmak için HTTP önbellek doğrulayıcıları kullanılır. Microsoft'tan Azure CDN Standard yalnızca Last-Modifieddestekler.

Not

Microsoft'tan Azure CDN (klasik) desteklemez ETag.

Son Değiştirme Tarihi:

  • Kaynak sunucunun kaynağın son değiştirildiğini belirlediği tarih ve saati belirtir. Örneğin, Last-Modified: Thu, 19 Oct 2017 09:28:00 GMT.
  • 8 MB'tan büyük içerikler için kaynak arka uç sunucuları varlık başına tutarlı Last-Modified zaman damgaları tutmalıdır. Arka uç sunucularından tutarsız Last-Modified sürelerin döndürülmesi, doğrulayıcı uyuşmazlığı hatalarına neden olur ve HTTP 5XX hatalarına neden olur. Azure Depolama, çoğaltmalar arasında tutarlı Last-Modified zaman damgalarını desteklemeyebilir ve bu da benzer doğrulayıcı uyuşmazlığı hatalarına neden olabilir.
  • Önbellek, istekte tarih ve saat içeren bir If-Modified-Since üst bilgi göndererek kullanarak Last-Modified dosyayı doğrular. Kaynak sunucusu bu tarihi en son kaynağın Last-Modified üst bilgisi ile karşılaştırır. Kaynak belirtilen süreden bu yana değiştirilmediyse, sunucu yanıtında 304 (Değiştirilmedi) durum kodunu döndürür. Kaynak değiştirildiyse, sunucu durum kodu 200 (Tamam) ve güncelleştirilmiş kaynağı döndürür.

Hangi dosyaların önbelleğe alınabileceğini belirleme

Tüm kaynaklar önbelleğe alınamıyor. Aşağıdaki tabloda, HTTP yanıtının türüne göre hangi kaynakların önbelleğe alınabileceği gösterilmektedir. Bu koşulların tümünü karşılamayen HTTP yanıtları ile teslim edilen kaynaklar önbelleğe alınamaz.

Koşullar Değer
HTTP durum kodu 200, 203, 206, 300, 301, 410, 416
HTTP yöntemleri GET, HEAD
Dosya boyutu sınırları 300 GB

Önbelleğe alma işleminin bir kaynakta çalışması için kaynak sunucunun tüm HEAD ve GET HTTP isteklerini desteklemesi ve içerik uzunluğu değerlerinin varlık için head ve GET HTTP yanıtları için aynı olması gerekir. HEAD isteği için, kaynak sunucunun HEAD isteğini desteklemesi ve get isteği almış gibi aynı üst bilgilerle yanıt vermesi gerekir.

Not

Yetkilendirme üst bilgisi içeren istekler önbelleğe alınmaz.

Varsayılan önbelleğe alma davranışı

Azure CDN için varsayılan önbelleğe alma davranışı, kaynağı kabul etmek ve içeriği iki gün boyunca önbelleğe almaktır.

Onur kaynağı: Bu ayar, kaynak sunucudan GELEN HTTP yanıtında varsa önbellek yönergesi üst bilgilerine (Cache-Control veya Expires) uyulup uyulmayacağını belirtir.

CDN önbellek süresi: Bu ayar, Azure CDN'de bir kaynağın önbelleğe alındığı süreyi belirtir. Onur kaynağı etkinleştirilirse ve kaynak sunucudan gelen HTTP yanıtı veya Expires üst bilgisini içeriyorsaCache-Control: max-age, Azure CDN varsayılan iki günlük süre yerine bu üst bilgiler tarafından belirtilen süreyi kullanır.

Not

Azure CDN, nesnenin önbellekte depolanacağına ilişkin en düşük süre garantisine sahip değildir. İçeriğin daha sık istenen içeriklere yer açması istenmediğinde, önbelleğe alınan içerikler, süresi dolmadan önce içerik teslim ağı önbelleğinden çıkarılabilir.

Sonraki adımlar

  • Önbelleğe alma kuralları aracılığıyla içerik teslim ağındaki varsayılan önbelleğe alma davranışını özelleştirmeyi ve geçersiz kılmayı öğrenmek için bkz . Önbelleğe alma kurallarıyla Azure Content Delivery Network önbelleğe alma davranışını denetleme.
  • Önbelleğe alma davranışını denetlemek için sorgu dizelerini kullanmayı öğrenmek için bkz . Sorgu dizeleriyle Azure Content Delivery Network önbelleğe alma davranışını denetleme.