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

Uyarı

Kullanımdan kaldırılmış, destek dışı Internet Explorer 11 masaüstü uygulaması, Windows 10'nin belirli sürümlerindeki bir 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ı kullanımdan kaldırma 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.

Orijinal ü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 uç noktasında aşağıdaki betiği kullanarak son derece 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 bilgileri sağlamaması kötü bir uygulamadır. Günümüzde tarayıcıların ve ara proxy'lerin çoğu bu süre sonu bilgilerine saygı gösterir ve ağ üzerinden iletişim verimliliğini artırmak için kullanır.

Sunucudaki belirli bir dosyanın istemci tarafından güncelleştirilmesi gerektiğinde 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ı alın. Bu haber sayfasının Web sunucusu, ertesi gün 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şmesi beklenmeyen sayfalar, yaklaşık bir yıllık bir 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 Expires üst bilgisi için "-1" değeriyle işaretlenmelidir. Kullanıcı tarafından gelecek isteklerde, Internet Explorer genellikle koşullu If-Modified-Since isteği aracılığıyla bu sayfaya yapılan 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.

Cache-Control üst bilgisi

Ancak bazı sayfalar disk önbelleği gerektirmek için çok 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 dikkate almadan kullanmalıdır. Çoğu durumda Süre Sonu: -1 kullanımı tercih edilir.

Pragma: No-Cache üst bilgisi

Ne yazık ki eski HTTP 1.0 sunucuları Cache-Control üst bilgisini kullanamaz. Internet Explorer, HTTP 1.0 sunucularıyla geriye dönük uyumluluk amacıyla 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ç için 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 Cache-Control ü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: önbellek yok, önbelleğe almayı yalnızca güvenli bir bağlantı üzerinden kullanıldığında 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.

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

Not

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

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

Cache-Control ü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 değerini ekleyin.

Bu üst bilgiyi tüm Web sunucusunda 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 hiçbir yolu yoktur.
  • Web sunucunuzda HTTP 1.1'in açık olduğunu ve Internet Explorer'a HTTP 1.1 yanıtları döndürdüğünü iki kez denetlediniz mi? http 1.0 yanıtlarında Cache-Control üst bilgileri geçersiz.
  • Sunucu tarafında CGI/ISAPI/Servlets kullanıyorsanız HTTP 1.1 belirtimini tam olarak, özellikle de HTTP üst bilgilerinin CRLF sonlandırması hakkında 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.