Internet Explorer'da önbelleğe almayı önleme

Uyarı

Kullanımdan kaldırılan, destek dışı Internet Explorer 11 masaüstü uygulaması, Windows 10'un belirli sürümlerinde Microsoft Edge güncelleştirmesi aracılığıyla kalıcı olarak devre dışı bırakılmıştır. Daha fazla bilgi için bkz. Internet Explorer 11 masaüstü uygulamasının kullanımdan kaldırılması hakkında SSS.

Bu makalede, Internet Explorer'da Web sayfalarının önbelleğe alınmasını denetlemek için HTTP üst bilgilerinin kullanımı açıklanmaktadır.

Özgün ürün sürümü: Internet Explorer
Özgün KB numarası: 234067

Özet

Microsoft Internet Information Server'ı (IIS) kullanarak, belirli Active Server Pages (ASP) sayfalarının en aşırı başında aşağıdaki betiği kullanarak yüksek oranda geçici veya hassas sayfaları kolayca işaretleyebilirsiniz:

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

Süre Sonu ve Süre Sonu üst bilgisi

Tüm Web sunucularının tüm Web sayfalarının süre sonu için bir düzen kullanması kesinlikle önerilir. Web sunucusunun istekte bulunan istemcilere döndürülen her kaynak için HTTP Süre sonu yanıt üst bilgisi aracılığıyla süre sonu bilgisi sağlamaması kötü bir uygulamadır. Günümüzde çoğu tarayıcı ve ara proxy bu süre sonu bilgilerine saygı duymaktadır ve ağ üzerinden iletişim verimliliğini artırmak için bu bilgileri kullanmaktadır.

Sunucudaki belirli bir dosyanın istemci tarafından güncelleştirilmesi gereken en makul zamanı belirtmek için her zaman Süre Sonu üst bilgisini kullanın. Sayfalar düzenli olarak güncelleştirildiğinde, sonraki güncelleştirme dönemi en verimli yanıttır. Örneğin, İnternet'te her gün saat 05:00'te güncelleştirilen günlük bir haber sayfasını alın. Bu haber sayfasının Web sunucusu, sonraki gün saat 05:00 değerine sahip bir Expires üst bilgisi döndürmelidir. İşlem tamamlandığında, sayfa değişene kadar tarayıcının Web sunucusuyla yeniden iletişim kurması gerekmez.

Değiştirilmesi beklenmeyen sayfalar yaklaşık bir yıllık son kullanma tarihiyle işaretlenmelidir.

Çoğu durumda, Web sunucularının sunucuda hemen değiştirilebilir bilgiler içeren bir veya daha fazla geçici sayfası vardır. Bu sayfalar sunucu tarafından Süre sonu üst bilgisi için "-1" değeriyle işaretlenmelidir. Kullanıcı tarafından gelecek isteklerde, Internet Explorer genellikle koşullu Bir If-Modified-Since isteği aracılığıyla bu sayfadaki güncelleştirmeler için Web sunucusuyla iletişim kurar. Ancak, sayfa disk önbelleğinde kalır (Geçici İnternet Dosyaları). Sayfa, aşağıdakiler gibi uzak Web sunucusuna başvurmadan uygun durumlarda kullanılır:

  • gezinti geçmişine erişmek için GERİ ve İleT düğmeleri kullanıldığında.
  • tarayıcı çevrimdışı moddayken.

Önbellek Denetimi üst bilgisi

Ancak bazı sayfalar, disk önbelleği gerektirmek için o kadar geçici veya hassastır. Bu amaçla, Internet Explorer HTTP 1.1 Cache-Control üst bilgisini destekler. Bu üst bilgi, önbellek yok değeri bir HTTP 1.1 sunucusu tarafından belirtildiğinde belirli bir Web kaynağının tüm önbelleğe alınmasını engeller.

Tarayıcı Web sunucusunu yeniden kullanıncaya kadar önbellekte tutulan sayfalara erişilemez. Bu nedenle, sunucular Cache-Control üst bilgisini tedbirli bir şekilde kullanmalıdır. Çoğu durumda, Süre Sonu: -1 kullanımı tercih edilir.

Pragma: Önbellek Yok üst bilgisi

Ne yazık ki eski HTTP 1.0 sunucuları Önbellek Denetimi üst bilgisini kullanamaz. HTTP 1.0 sunucularıyla geriye dönük uyumluluk amacıyla Internet Explorer, HTTP Pragması: önbelleksiz üst bilgisinin özel kullanımını destekler. İstemci sunucuyla güvenli bir bağlantı (https://) üzerinden iletişim kurarsa ve sunucu yanıtla pragma: önbelleksiz üst bilgisi döndürürse, Internet Explorer yanıtı önbelleğe almaz.

Ancak Pragma: no-cache üst bilgisi bu amaçla değildi. HTTP 1.0 ve 1.1 belirtimlerine göre, bu üst bilgi yanıt değil yalnızca istek bağlamında tanımlanır. Belirli önemli isteklerin hedef Web sunucusuna ulaşmasını engelleyebilecek ara sunuculara yöneliktir. Gelecekteki uygulamalar için Önbellek Denetimi üst bilgisi, önbelleğe alma denetimi için uygun araçlardır.

HTTP-EQUIV META etiketleri

HTML sayfaları, HTML belgesinin içinden belirli HTTP üst bilgilerini belirten META etiketinin özel bir HTTP-EQUIV biçimini sağlar. Pragma: no-cache ve Expires: -1 kullanan kısa bir örnek HTML sayfası aşağıda verilmiştir:

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

Pragma: önbelleksiz önbellek yalnızca güvenli bir bağlantı üzerinden kullanıldığında önbelleğe almayı engeller. Pragma: önbelleksiz META etiketi, güvenli olmayan bir sayfada kullanılıyorsa Süresi Doluyor: -1 ile aynı şekilde değerlendirilir. Sayfa önbelleğe alınır ancak süresi hemen doldu olarak işaretlenir.

Önbellek Denetimi META HTTP-EQUIV etiketleri yoksayılır ve Internet Explorer 4 veya 5 sürümlerinde hiçbir etkisi yoktur. Önbellek Denetimi'ni kullanmak için bu üst bilgi, yukarıdaki Önbellek Denetimi bölümünde açıklandığı gibi HTTP üst bilgileri kullanılarak belirtilmelidir.

Not

Standart HTTP üst bilgilerinin kullanımı META etiketlerine göre çok tercih edilir. META etiketleri genellikle HTML HEAD bölümünün en üstünde görünmelidir. Pragma HTTP-EQUIV META etiketiyle ilgili bilinen en az bir sorun vardır.

Önbelleğe alma için sunucu seçenekleri

Önbellek Denetimi üst bilgisinin ASP olmayan sayfalarda kullanılması gerektiğinde, bu üst bilgiyi otomatik olarak eklemek için sunucu yapılandırmasındaki seçeneklerin kullanılması gerekebilir. Belirli bir dizin için sunucu yanıtlarına HTTP üst bilgileri ekleme işlemi için sunucu belgenize bakın. Örneğin, IIS 4'te şu adımları izleyin:

  1. IIS Yöneticisi'ni başlatın.
  2. Bilgisayar ve hizmetler ağacında, Varsayılan Web Sunucusu'nu veya söz konusu web sunucusunu açın. Cache-Control üst bilgisine ihtiyaç duyan içeriği içeren dizini bulun.
  3. Bu dizinin Özellikler iletişim kutusunu açın.
  4. HTTP Üst Bilgileri sekmesini seçin.
  5. Özel HTTP Üst Bilgileri grubunda Ekle düğmesini seçin ve üst bilgi adı için Cache-Control ve üst bilgi değeri için önbellek yok ifadesini ekleyin.

Bu üst bilgiyi web sunucusunun tamamında genel olarak kullanmak iyi bir fikir değildir. Yalnızca istemcide önbelleğe alınmaması gereken içerikle kullanımını kısıtlayın.

Sorun denetim listesi

Bu makaledeki teknikleri uyguladıysanız ve önbelleğe alma ve Internet Explorer ile ilgili sorun yaşamaya devam ediyorsanız, teknik destek yardımı için Microsoft'a başvurmadan önce bu kullanışlı denetim listesini adım adım gözden geçirin:

  • Cache-Control üst bilgisini ASP Response.CacheControl özelliğiyle mi yoksa döndürülen bir HTTP üst bilgisi aracılığıyla mı kullanıyorsunuz? Internet Explorer'da önbelleğe almayı gerçekten engellemenin tek yoludur.
  • Internet Explorer 4.01 Service Pack 2 veya üzerini mi kullanıyorsunuz? Tarayıcının önceki sürümlerinde önbelleğe almayı tamamen engellemenin bir yolu yoktur.
  • Web sunucunuzda HTTP 1.1'in açık olup olmadığını ve Internet Explorer'a HTTP 1.1 yanıtları döndürdüğünü iki kez denetlediniz mi? Önbellek Denetimi üst bilgileri HTTP 1.0 yanıtlarında geçersiz.
  • Sunucu tarafında CGI/ISAPI/Servlets kullanıyorsanız, ÖZELLIKLE HTTP üst bilgilerinin CRLF sonlandırması hakkında HTTP 1.1 belirtimini tam olarak mı izliyorsunuz? Performans açısından, Internet Explorer genellikle HTTP 1.1 belirtimini ihlal eden yanıtları affetmez. Genellikle göz ardı edilen üst bilgiler veya beklenmeyen sunucu hataları raporlarıyla sonuçlanır.
  • HTTP üst bilgileri doğru yazılmış mı?

Ayrıca bkz.