So verhindern Sie das Zwischenspeichern in Internet Explorer

Wichtig

Die Internet Explorer 11-Desktopanwendung wird für bestimmte Versionen von Windows 10 eingestellt und ab dem 15. Juni 2022 nicht mehr unterstützt.

Sie können mit dem Internet Explorer-Modus in Microsoft Edge weiterhin auf ältere Websites zugreifen, für die Internet Explorer erforderlich ist. Anleitung.

Die Internet Explorer 11-Desktopanwendung wird schrittweise an den schnelleren, sichereren Microsoft Edge-Browser umgeleitet und letztendlich über Windows Update deaktiviert werden. Deaktivieren von IE heute.

In diesem Artikel wird die Verwendung von HTTP-Headern zum Steuern der Zwischenspeicherung von Webseiten in Internet Explorer beschrieben.

Ursprüngliche Produktversion:   Internet Explorer
Ursprüngliche KB-Nummer:   234067

Zusammenfassung

Sie können Microsoft Internet Information Server (IIS) verwenden, um stark veränderte oder vertrauliche Seiten ganz einfach mithilfe des folgenden Skripts am äußersten Anfang der spezifischen Asp-Seiten (Active Server Pages) zu markieren:

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

Ablauf- und Ablaufheader

Es wird dringend empfohlen, dass alle Webserver ein Schema für den Ablauf aller Webseiten verwenden. Es ist eine schlechte Methode, wenn ein Webserver keine Ablaufinformationen über den HTTP Expires-Antwortheader für jede Ressource bereitstellt, die an anfordernde Clients zurückgegeben wird. Die meisten Browser und Zwischenproxys respektieren diese Ablaufinformationen und verwenden sie, um die Effizienz der Kommunikation über das Netzwerk zu steigern.

Verwenden Sie immer den Expires-Header, um den sinnvollsten Zeitpunkt anzugeben, zu dem eine bestimmte Datei auf dem Server vom Client aktualisiert werden muss. Wenn Seiten regelmäßig aktualisiert werden, ist der nächste Aktualisierungszeitraum die effizienteste Antwort. Nehmen wir beispielsweise eine tägliche Nachrichtenseite im Internet, die täglich um 5:00 Uhr aktualisiert wird. Der Webserver für diese Nachrichtenseite sollte einen Expires-Header mit einem Wert für 5 Uhr zurückgeben. am nächsten Tag. Wenn dies abgeschlossen ist, muss der Browser den Webserver erst dann erneut kontaktieren, wenn sich die Seite geändert hat.

Seiten, die sich voraussichtlich nicht ändern, sollten mit einem Ablaufdatum von ungefähr einem Jahr gekennzeichnet werden.

In vielen Fällen verfügen Webserver über eine oder mehrere veränderlich Seiten auf einem Server, die Informationen enthalten, die sofort geändert werden können. Diese Seiten sollten vom Server mit dem Wert "-1" für den Expires-Header gekennzeichnet werden. Bei zukünftigen Anforderungen des Benutzers kontaktiert Internet Explorer in der Regel den Webserver über eine bedingte If-Modified-Since-Anforderung, um Aktualisierungen an dieser Seite zu erhalten. Die Seite verbleibt jedoch im Datenträgercache (temporäre Internetdateien). Und die Seite wird in geeigneten Situationen ohne Kontakt mit dem Remotewebserver verwendet, z. B.:

  • wenn die Schaltflächen "ZURÜCK" und "VORWÄRTS" für den Zugriff auf den Navigationsverlauf verwendet werden.
  • wenn sich der Browser im Offlinemodus befindet.

Der Cache-Control-Header

Bestimmte Seiten sind jedoch so veränderlich oder vertraulich, dass sie keine Datenträgerzwischenspeicherung erfordern. Zu diesem Zweck unterstützt Internet Explorer den HTTP 1.1-Cache-Control-Header. Dieser Header verhindert das zwischenspeichern einer bestimmten Webressource, wenn der Wert ohne Cache von einem HTTP 1.1-Server angegeben wird.

Auf Seiten, die nicht im Cache gespeichert werden, kann erst zugegriffen werden, wenn der Browser den Webserver erneut kontaktieren kann. Server sollten daher den Cache-Control Header sparsam verwenden. In den meisten Fällen wird die Verwendung von Expires: -1 bevorzugt.

Die Kopfzeile "Pragma: No-Cache"

Leider können ältere HTTP 1.0-Server den Cache-Control-Header nicht verwenden. Aus Gründen der Abwärtskompatibilität mit HTTP 1.0-Servern unterstützt Internet Explorer eine spezielle Verwendung von HTTP Pragma: kein Cacheheader. Wenn der Client mit dem Server über eine sichere Verbindung ( ) kommuniziert https:// und der Server einen Pragma: no-cache-Header mit der Antwort zurückgibt, speichert Internet Explorer die Antwort nicht zwischen.

Der Pragma: No-Cache-Header war jedoch nicht für diesen Zweck vorgesehen. Gemäß den Spezifikationen für HTTP 1.0 und 1.1 wird dieser Header nur im Kontext einer Anforderung definiert, nicht in einer Antwort. Sie ist für Proxyserver vorgesehen, die möglicherweise verhindern, dass bestimmte wichtige Anforderungen den Zielwebserver erreichen. Für zukünftige Anwendungen ist der Cache-Control Header die richtige Methode zum Steuern der Zwischenspeicherung.

HTTP-EQUIV-METAtags

HTML-Seiten ermöglichen eine spezielle HTTP-EQUIV-Form des META-Tags, das bestimmte HTTP-Header innerhalb des HTML-Dokuments angibt. Hier ist eine kurze BEISPIEL-HTML-Seite, die sowohl Pragma: no-cache als auch Expires: -1 verwendet:

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

Pragma: Kein Cache verhindert das Zwischenspeichern nur, wenn es über eine sichere Verbindung verwendet wird. Ein Pragma: NO-Cache-META-Tag wird identisch mit Expires behandelt: -1, wenn es auf einer nicht sicheren Seite verwendet wird. Die Seite wird zwischengespeichert, aber als sofort abgelaufen gekennzeichnet.

Cache-Control META-HTTP-EQUIV-Tags werden ignoriert und haben keine Auswirkungen in Internet Explorer, Version 4 oder 5. Um Cache-Control zu verwenden, muss dieser Header mithilfe von HTTP-Headern angegeben werden, wie im abschnitt Cache-Control oben beschrieben.

Hinweis

Die Verwendung von standardmäßigen HTTP-Headern wird gegenüber META-Tags bevorzugt. META-Tags müssen in der Regel oben im HTML HEAD-Abschnitt angezeigt werden. Außerdem gibt es mindestens ein bekanntes Problem mit dem Pragma HTTP-EQUIV-META-Tag.

Serveroptionen für die Zwischenspeicherung

Wenn der Cache-Control Header auf Nicht-ASP-Seiten verwendet werden muss, müssen Sie möglicherweise Optionen in der Serverkonfiguration verwenden, um diesen Header automatisch hinzuzufügen. Informationen zum Hinzufügen von HTTP-Headern zu Serverantworten für ein bestimmtes Verzeichnis finden Sie in Ihrem Serverdokument. Führen Sie beispielsweise in IIS 4 die folgenden Schritte aus:

  1. Starten Sie den IIS-Manager.
  2. Öffnen Sie in der Computer- und Dienststruktur den Standardwebserver oder den betreffenden Webserver. Suchen Sie das Verzeichnis mit dem Inhalt, der den Cache-Control Header benötigt.
  3. Öffnen Sie das Dialogfeld "Eigenschaften" für dieses Verzeichnis.
  4. Wählen Sie die Registerkarte "HTTP-Header" aus.
  5. Wählen Sie die Schaltfläche "Hinzufügen" in der Gruppe "Benutzerdefinierte HTTP-Header" aus, und fügen Sie Cache-Control für den Headernamen und keinen Cache für den Headerwert hinzu.

Es empfiehlt sich nicht, diesen Header global auf dem gesamten Webserver zu verwenden. Beschränken Sie die Verwendung ausschließlich auf Inhalte, die auf dem Client unbedingt nicht zwischengespeichert werden dürfen.

Problemprüfliste

Wenn Sie die Techniken in diesem Artikel angewendet haben und weiterhin Probleme mit dem Zwischenspeichern und Internet Explorer haben, überprüfen Sie diese praktische Checkliste Schritt für Schritt, bevor Sie sich an Microsoft wenden, um technischen Support zu erhalten:

  • Verwenden Sie den Cache-Control-Header mit der Response.CacheControl ASP-Eigenschaft oder über einen zurückgegebenen HTTP-Header? Es ist die einzige Möglichkeit, das Zwischenspeichern in Internet Explorer wirklich zu verhindern.
  • Verwenden Sie Internet Explorer 4.01 Service Pack 2 oder höher? Es gibt keine Möglichkeit, das Zwischenspeichern in früheren Versionen des Browsers vollständig zu verhindern.
  • Haben Sie überprüft, ob auf Ihrem Webserver HTTP 1.1 aktiviert ist und HTTP 1.1-Antworten an Internet Explorer zurückgegeben werden? Cache-Control Header sind in HTTP 1.0-Antworten ungültig.
  • Wenn Sie CGI/ISAPI/Servlets serverseitig verwenden, folgen Sie genau der HTTP 1.1-Spezifikation, insbesondere hinsichtlich der CRLF-Beendigung von HTTP-Headern? Aus Leistungsgründen verzeiht Internet Explorer in der Regel keine Antworten, die gegen die HTTP 1.1-Spezifikation verstoßen. In der Regel führt dies zu ignorierten Headern oder Berichten über unerwartete Serverfehler.
  • Sind die HTTP-Header richtig geschrieben?

Siehe auch