Asp De Cache Sistemi Cache Kontrolu - ASP Webmaster bilgi bankası, knowledge base Webmaster Araçları

AnaSayfa > ASP > Asp De Cache Sistemi Cache Kontrolu
Kategori: ASP
Gönderen: Admin
Tarih: 2008-11-11
Puan: 0   Puan:0 | Katılımcı:0 | Katılımcı : 0
Okunma: 6295
  
 
1 puan 2 puan 3 puan 4 puan 5 puan 6 puan 7 puan 8 puan 9 puan 10 puan

asp de cache olusturmak
asp de cache nasil olusturulur

Bu deste ASP Cache kontrolü ne işimize yarıyor ona bakalım.

ASP ile oluşturulmuş sayfaların en başında aşağıdaki komut dosyasını kullanılarak değişken veya önemli sayfaları kolayca işaretleyebilirsiniz:



<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>


Geçerlilik Süresi ve Expires Üstbilgisi

Tüm Web sunucularının tüm Web sayfaları için bir geçerlilik süresi önerilir. Bir Web sunucusunun istekte bulunan istemcilere döndürülen her kaynak için HTTP Expires yanıt üstbilgisi aracılığıyla geçerlilik süresi sağlamaması kötü bir uygulamadır.

Günümüzdeki çoğu tarayıcı ve ara proxy'ler bu süre sonu bilgisini dikkate alır ve ağ üzerinden iletişim verimliliğini artırmak için kullanır.

Sunucudaki belirli bir dosyanın istemci tarafından güncelleştirilmesi gereken en makul süreyi belirtmek amacıyla her zaman Expires üstbilgisi
kullanılmalıdır. Sayfalar sık sık güncelleştirildiğinde, sonraki güncelleştirme dönemi en etkili yanıttır.

Örneğin, her sabah 5'te güncelleştirilen Internet'teki bir günlük haber sayfasını ele alın. Bu haber sayfasının Web sunucusu, ertesi gün sabah 5'i belirten bir Expires üstbilgisi göndermelidir. Bu yapıldığında, sayfa gerçekten değişinceye kadar tarayıcının Web sunucusuyla iletişim kurması gerekmez.

Değişmesi beklenmeyen sayfalar, yaklaşık bir yıllık bir geçerlilik süresiyle işaretlenmelidir.

Birçok durumda, Web sunucularında anında değişen bilgiler içeren bir veya daha fazla değişken sayfa bulunan.
Bu sayfalar sunucu tarafından Expires üstbilgisinde "-1" kullanılarak işaretlenmelidir.

Kullanıcının daha sonraki isteklerinde, Internet Explorer sayfayı almak için bir koşullu If-Modified-Since isteği kullanarak Web sunucusuyla iletişim kurar.

Ancak, sayfa disk önbelleğinde ("Temporary Internet Files") kalır ve uygun durumlarda (gezinti geçmişine erişmek için İLERİ ve GERİ düğmelerinin kullanılması veya tarayıcının çevrimdışı modda olması gibi) Web sunucusuyla iletişim kurulmaksızın kullanılır.

Cache-Control Üstbilgisi

Ancak bazı sayfalar disk önbelleği gerekmeyecek kadar değişken ve önemlidir. Bu amaçla, Internet Explorer, bir HTTP 1.1 sunucusu tarafından "no-cache" (önbelleğe alma) değeri belirtildiğinde bir Web kaynağının önbelleğe alınmasını tamamen engelleyen HTTP 1.1 Cache-Control üstbilgisini destekler.

Önbelleğe dahil edilmeyen sayfalar tarayıcı yeniden Web sunucusuyla iletişim kuruncaya kadar erişilebilir olmayacağından, sunucular Cache-Control üstbilgisini dikkatli kullanmalıdır. Çoğu durumda "Expires: -1" kullanılması tercih edilir.

Pragma: No-Cache Üstbilgisi

Ne yazık ki, eski HTTP 1.0 sunucuları Cache-Control üstbilgisini kullanamaz. HTTP 1.0 sunucularıyla geriye dönük uyumluluk amacıyla,
Internet Explorer özel bir HTTP Pragma: no-cache üstbilgisi kullanımını destekler. İstemci sunucuyla güvenli bir bağlantı (https://) üzerinden
iletişim kuruyorsa ve sunucu yanıtla birlikte bir Pragma: no-cache üstbilgisi döndürürse, Internet Explorer yanıtı önbelleğe almaz.

Ancak, Pragma: no-cache üstbilgisinin amacının bu olmadığını unutmayın. HTTP 1.0 ve 1.1 belirtimlerine göre, bu üstbilgi yanıtın bağlamında değil yalnızca isteğin bağlamında tanımlıdır ve gerçekte bazı önemli isteklerin hedef Web sunucusuna ulaşmasına engel olabilen proxy sunucular için düşünülmüştür. Gelecekteki uygulamalarda, önbelleğe almayı denetlemenin doğru yolu Cache-Control üstbilgisidir.

HTTP-EQUIV META Etiketleri

HTML sayfaları, META etiketinin, HTTP belgesinin içinde belirli HTML üstbilgilerini belirten özel bir HTTP-EQUIV biçimine olanak verir.
Aşağıda, hem Pragma: no-cache hem de Expires kullanan kısa bil HTML sayfası örneği bulunmaktadır: -1:



<HTML><HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</HEAD><BODY>
</BODY>
</HTML>


Pragma: no-cache, yalnızca güvenli bir bağlantı üzerinden kullanıldığında önbelleğe almayı engeller. Güvenli olmayan bir sayfada kullanıldığında,
Pragma: no-cache META etiketi Expires: -1 gibi değerlendirilir. Sayfa önbelleğe alınır ancak hemen süresi dolmuş olarak işaretlenir.

Cache-Control META HTTP-EQUIV etiketleri yoksayılır ve Internet Explorer 4 ve 5 sürümlerinde hiçbir etkileri yoktur.

Cache-Control'ün kullanılabilmesi için, yukarıdaki Cache-Control bölümünde anlatıldığı gibi bu üstbilginin HTTP üstbilgileri kullanılarak belirtilmesi gerekir.

META etiketleri yerine standart HTTP üstbilgilerinin kullanılmasının tercih edildiğini unutmayın. META etiketleri HTML HEAD bölümünün en üstünde yer almalıdır. Üstelik, Pragma HTTP-EQUIV META etiketinde bilinen en az bir sorun bulunmaktadır.

"Pragma: No-cache" etiketi sayfanın önbelleğe alınmasını engelleyebilir (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir) Önbelleğe Almayla İlgili Sunucu Seçenekleri Cache-Control üstbilgisinin ASP olmayan sayfalarda kullanılması gerektiğinde,
bu üstbilgiyi otomatik olarak eklemek için sunucu yapılandırmasındaki seçenekleri kullanmak gerekebilir. Belirli bir dizin için sunucu yanıtlarına HTTP üstbilgileri ekleme işlemi için sunucunuzun belgelerine bakın.

Örneğin IIS 4'te, şu adımları izleyin:
- Internet Hizmetleri Yöneticisi'ni başlatın.
- Bilgisayar ve hizmetler ağacını kullanarak, Varsayılan Web Sunucusunu (veya söz konusu web sunucusunu) açın ve Cache-Control üstbilgisinin gerektiği
içeriğin bulunduğu dizini bulun.
- Bu dizinin Özellikler iletişim kuyusunu açın.
- HTTP Üstbilgileri sekmesini seçin.
- Özel HTTP Üstbilgileri grubunda Ekle düğmesini tıklatın ve üstbilgi adı olarak "Cache-Control" ve üstbilgi değeri olarak da "no-cache" ekleyin.

Bu üstbilgiyi tüm Web sunucusunda genel olarak kullanmanın iyi bir fikir olmadığını unutmayın. Bunun kullanımını yalnızca istemcide kesinlikle önbelleğe alınmaması gereken içerikle sınırlı tutun. Sorun Denetim Listesi Bu makaledeki teknikleri uyguladıysanız ve hala önbelleğe alma ve Internet Explorer sorunları yaşıyorsanız, teknik destek yardım için Microsoft'a başvurmadan önce lütfen bu denetim listesini adım adım gözden geçirin:

- Cache-Control üstbilgisini ASP "Response.CacheControl" özelliğiyle veya döndürülen bir HTTP üstbilgisi üzerinden mi kullanıyorsunuz? Internet Explorer'da önbelleğe almayı gerçekten önlemenin tek yolu budur.
- Explorer 4.01 Service Pack 2 veya üstünü mü kullanıyorsunuz? Tarayıcının önceki sürümlerinde önbelleğe almayı tamamen engellemenin yolu yoktur.
- Web sunucunuzda HTTP 1.1'in açık olduğunu ve Internet Explorer'a HTTP 1.1 yanıtlarını döndürdüğünü yeniden denetlediniz mi?
Cache-Control üstbilgileri HTTP 1.0 yanıtlarında geçersizdir.
- Sunucu tarafında CGI/ISAPI/Servlet kullanıyorsanız, HTTP 1.1 belirtimini tam olarak izliyor musunuz (özellikle de HTTP üstbilgilerinin CRLF ile sonlandırılması konusunda)? Performans açısından, Internet Explorer HTTP 1.1 belirtimini ihlal eden yanıtlar konusunda hoşgörülü değildir. Bu genellikle üstbilgilerin yoksayılmasına ve beklenmeyen sunucu hatalarına neden olur.
- HTTP üstbilgileri doğru yazılmış mı?

Evet, ASP ile Cache kontrolümüzün kullanımı bu şekildedir.

Kaynak: Microsoft Resmi Web Sitesi.




Yorumlar
Henüz Kimse Yorum Yapmamış, ilk yorumu siz ekleyin!
Yorum Ekleme Aparatı
Yorum Eklemek için lütfen sol menuden giris yapınız..
Toplam 0 yorum listelendi.