Internet Explorer'da önbelleğe alma nasıl engellenir

Makale çevirileri Makale çevirileri
Makale numarası: 234067 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

™zet

Bu makalede HTTP üstbilgileri kullanılarak Internet Explorer'da Web sayfalarının önbelleğe alınmasının nasıl denetleneceği anlatılmaktadır.

Microsoft Internet Information Server'ı (IIS) kullanarak, Active Server Pages (ASP) sayfalarının en başında aşağıdaki komut dosyasını kullanmak suretiyle son derece değişken veya önemli sayfaları kolayca işaretleyebilirsiniz:
<% Response.CacheControl = "no-cache" %>
<% Response.AddHeader "Pragma", "no-cache" %>
<% Response.Expires = -1 %>
				

Daha fazla bilgi

Geçerlilik Süresi ve Expires Üstbilgisi

Tüm Web sunucularının tüm Web sayfaları için bir geçerlilik süresi düzeni önemle ö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. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
222064 "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ı?

Referanslar

Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleleri görüntülemek üzere aşağıdaki makale numaralarını tıklatın:
189409 IIS 4.0 ile Web sayfalarının önbelleğe alınmasını denetim altında tutma (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
165150 IIS'de ve IE'de Pragma: No-cache nasıl kullanılır (Bu bağlantı, bir kısmı veya tamamı İngilizce olan içeriğe işaret edebilir)
HTTP/1.1 hakkında daha fazla bilgi için, aşağıdaki Web sitesini ziyaret ederek RFC 2616'yı edinin:
http://www.w3.org/Protocols/rfc2616/rfc2616.html

Özellikler

Makale numarası: 234067 - Last Review: 12 Ekim 2006 Perşembe - Gözden geçirme: 4.1
Bu makaledeki bilginin uygulandigi durum:
  • Microsoft Internet Explorer 4.0 128-Bit Edition
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 4.01 Service Pack 1
  • Microsoft Internet Explorer 4.01 Service Pack 2
  • Microsoft Internet Explorer 5.0
  • Microsoft Internet Explorer 5.5
  • Microsoft Internet Explorer 6.0
  • Microsoft Internet Explorer 6.0 Service Pack 1
Anahtar Kelimeler: 
kbhowto kbcaching kbfaq KB234067

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com