Freigeben über


Festlegen der Cachefähigkeit einer Seite

Aktualisiert: November 2007

Die Cachefähigkeit einer Seite oder eines Benutzersteuerelements bezieht sich darauf, ob eine Seite während des Antwortlebenszyklus der Seite auf einem Gerät gespeichert werden kann oder nicht. Zu den Geräten, die eine Seite zwischenspeichern können, gehören der Browser, der die Anforderung stellt, der Webserver, der auf die Anforderung reagiert, sowie alle weiteren cachefähigen Geräte, z. B. Proxyserver, die sich innerhalb des Anforderungs- oder Antwortstreams befinden.

Beim Übermitteln der Antwort an den Browser, der die Anforderung gestellt hat, schließt der Webserver ein Cache-Control-Feld in den HTTP-Header in der Antwort ein, das die Geräte definiert, auf denen die Seite zwischengespeichert werden kann. Abhängig von den Anforderungen der Anwendung können Sie festlegen, welche Geräte bestimmte ASP.NET-Seiten zwischenspeichern dürfen und welche nicht. So könnten Sie beispielsweise für eine Benutzeranmeldeseite andere Einstellungen für die Cachefähigkeit verwenden als für eine Seite, auf der eine Reihe von Produkten aus einem Katalog angezeigt wird. Bei der Anmeldeseite empfiehlt es sich aus Sicherheitsgründen, die Seite lediglich auf dem Server zwischenzuspeichern, während die Katalogseite auf jedem Gerät zwischengespeichert werden kann.

Die Cachefähigkeit von ASP.NET-Seiten kann mithilfe der Werte in der HttpCacheability-Enumeration festgelegt werden. Die Enumeration verfügt über folgende Werte. Die ersten drei Werte sind direkt Cache-Control-HTTP-Header-Einstellungen zugeordnet. Die letzten drei Werte sind besondere Werte.

  • NoCache   Gibt an, dass das Gerät, das die Anforderung stellt, die Antwort jedes Mal vom Webserver abrufen muss.

  • Public   Gibt an, dass die Antwort auf Clients und gemeinsam verwendeten Caches (Proxycaches) zwischengespeichert werden kann.

  • Private   Gibt an, dass die Antwort nur auf dem Client zwischengespeichert werden kann, jedoch nicht auf gemeinsam verwendeten Caches (Proxyservercaches).

  • Server   Gibt an, dass die Antwort nur auf dem ursprünglichen Server zwischengespeichert wird.

  • ServerAndNoCache   Übernimmt die Einstellungen sowohl von Server als auch von NoCache, um festzulegen, dass der Inhalt nur auf dem Server zwischengespeichert wird, allen anderen Geräten das Zwischenspeichern jedoch explizit untersagt wird.

  • ServerAndPrivate   Gibt an, dass eine Antwort nur auf dem ursprünglichen Server und dem Client gespeichert werden kann, der die Anfrage gestellt hat. Proxyservern ist das Zwischenspeichern der Antwort untersagt.

Sie können die Cachefähigkeit einer Seite deklarativ festlegen, indem Sie ein Location-Attribut in die @ OutputCache-Direktive einschließen und einen der OutputCacheLocation-Enumerationswerte festlegen. Die Cachefähigkeit einer Seite kann auch programmgesteuert festgelegt werden, indem mithilfe der SetCacheability-Methode ein HttpCacheability-Wert für die Seite festgelegt wird. Der Zugriff auf diese Methode erfolgt mithilfe der Cache-Eigenschaft der Response-Klasse.

Hinweis:

Wenn Sie die @ OutputCache-Direktive zum Festlegen der Cachefähigkeit der Seite verwenden, müssen Sie das Duration-Attribut sowie entweder das VaryByControl-Attribut oder das VaryByParam-Attribut zusammen mit dem Location-Attribut deklarieren. Das Duration-Attribut muss auf einen Wert größer 0 (null) festgelegt werden. Sie können das VaryByParam-Attribut auf "None" festlegen, wenn Sie die durch den VaryByParam-Parameter und den VaryByControl-Parameter bereitgestellten Funktionen nicht verwenden möchten. Weitere Informationen finden Sie unter Gewusst wie: Festlegen von Ablaufzeitpunkten für das Zwischenspeichern von ASP.NET-Seiten und Zwischenspeichern mehrerer Versionen einer Seite.

Eine Alternative zum Festlegen der Cachefähigkeit einer Seite mithilfe der @ OutputCache-Direktive besteht darin, ein Cacheprofil in der Datei Web.config der Anwendung zu erstellen und in der Seite auf das Profil zu verweisen. Weitere Informationen finden Sie unter Cachekonfiguration in ASP.NET.

Siehe auch

Aufgaben

Gewusst wie: Deklaratives Festlegen der Cachefähigkeit einer ASP.NET-Seite

Gewusst wie: Programmgesteuertes Festlegen der Cachefähigkeit einer Seite

Konzepte

Zwischenspeichern von ASP.NET-Seiten

Referenz

Duration