Önbellek Denetiminde Özel ve Genel


127

IIS'de barındırılan asp.net uygulamalarında Genel ve Özel Önbellek Kontrolü arasındaki farkı gösteren bir örneği açıklar mısınız?

MSDN'de , farkın aşağıdaki olduğunu okudum :

Genel: Yanıtın istemciler ve paylaşılan (proxy) önbellekler tarafından önbelleğe alınabileceğini belirtmek için Önbellek Denetimi: genel'i ayarlar.

Özel: Varsayılan değer. Önbellek Denetimi'ni ayarlar: özel, yanıtın yalnızca istemcide önbelleğe alınabileceğini ve paylaşılan (proxy sunucu) önbellekleri tarafından değil.

Her seçimin artılarını ve eksilerini tam olarak anladığımdan emin değilim. Ne zaman kullanılıp kullanılmayacağına bir örnek harika olurdu.

Örneğin, aynı uygulamayı barındıran iki web sunucum varsa ne yapmalıyım? Özel veya Genel seçersem dikkat etmem gereken bir şey var mı?

Yanıtlar:


237

Tek fark, Özel ile vekillerin içlerinde dolaşan verileri önbelleğe almasına izin vermemenizdir. Sonunda, hepsi gönderdiğiniz sayfalarda / dosyalarda bulunan verilere indirgenir.

Örneğin, ISS'nizin sizinle İnternet arasında görünmez bir proxy'si olabilir; bu, gereken bant genişliği miktarını ve maliyetleri düşürmek için web sayfalarını önbelleğe alabilir. Cache-control: private kullanarak sayfayı önbelleğe almaması gerektiğini belirtirsiniz (ancak son kullanıcının bunu yapmasına izin verirsiniz). Cache-control: public kullanıyorsanız, herkesin sayfayı önbelleğe almasının uygun olduğunu ve böylece proxy'nin bir kopyasını saklayacağını söylüyorsunuz.

Genel bir kural olarak, herkesin erişebileceği bir şeyse (örneğin, bu sayfadaki logo) önbellek kontrolü: genel daha iyi olabilir, çünkü onu önbelleğe alan ne kadar çok kişi olursa, ihtiyacınız olan daha az bant genişliği. Bağlı kullanıcıyla ilgili bir şeyse (örneğin, bu sayfadaki HTML kullanıcı adımı içeriyorsa, bu nedenle başkaları için yararlı olmayacaktır) önbellek kontrolü: proxy'ler verileri önbelleğe alacağından özel daha iyi olacaktır bu diğer kullanıcılar tarafından istenmez ve güvenmediğiniz sunucularda saklanmasını istemediğiniz verileri de tutuyor olabilirler.

Ve tabii ki, herkese açık olmayan her şeyin özel bir önbelleği olmalıdır. Aksi takdirde, veriler, erişimi olan herhangi biri tarafından erişilebilir olsaydı, bir orta proxy sunucusunda saklanabilir.


39
Tek fark Private ile size olmasıdır değil ... önbelleğe proxy'leri izin Bunun bir yazım hatası olduğunu tahmin ediyorum. Bunun dışında yanıta +1. Özelin herhangi bir güvenlik derecesi sunmadığını eklemeye değer, yine de ortadaki temsilciler tarafından görülebilir. Bu sadece hiçbir "dürüst" temsilcinin yeni oluşturulmuş bir yanıt yerine onu başka birine vermeyeceği anlamına gelir.
Jon Hanna

Sabit! Komik çünkü yayınlamadan önce birkaç kez tekrar okudum, ama sanırım "hayır" ın orada olması gerektiğini biliyordum, bu yüzden aklım ekledi: D. Ve evet, yorumunuza +1, çünkü kullanıcıyla ilgili veriler için önerilse de özelin gerçek güvenliğin (SSL) yerini almayacağına dikkat edilmelidir.
salgiza

Yapmamanız gerektiğinde "hayır" yazmak veya yapmanız gerektiğinde atlamak çok kolaydır. Kendi kendime düzenlemelerimin (farklı alanlarda) büyük bir kısmının aynı yazım hatasını düzelttiğini biliyorum.
Jon Hanna

15
Yani hiçbir şey belirtmezsek, varsayılan davranış "genel" mi yoksa "özel" mi?
Pacerier

1
@Honey, ancak aynı proxy'yi kullanan birkaç müşteri olabilir. Tüm istemcilere aynı yanıtı göndermenin bir sakıncası yoksa, proxy düzeyinde önbelleğe almakta sorun yoktur, aksi takdirde istemcide önbelleğe almak uygun olabilir (bunun bile kötü bir fikir olduğu durumlar vardır), ancak proxy'de değil.
Jon Hanna
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.