Speicherortbasierte Cacherichtlinien
Eine speicherortbasierte Cacherichtlinie definiert die Aktualität gültiger zwischengespeicherter Einträge basierend darauf, woher die angeforderte Ressource stammen kann. Eine zwischengespeicherte Ressource ist gültig, wenn ihre Verwendung keinen Verstoß gegen vom Server angegebene Anforderungen an die erneute Überprüfung darstellt. Eine speicherortbasierte Cacherichtlinie wird programmgesteuert erstellt, indem ein RequestCachePolicy- oder HttpRequestCachePolicy-Klassenkonstruktor verwendet wird. Der Typ der speicherortbasierten Richtlinie wird mithilfe eines RequestCacheLevel- oder HttpRequestCacheLevel-Enumerationswerts an den Konstruktor übergeben. Codebeispiele, die speicherortbasierte Cacherichtlinien erstellen, finden Sie unter Vorgehensweise: Festlegen einer speicherortbasierten Cacherichtlinie für eine Anwendung. Im folgenden Abschnitt wird jeder Typ der speicherortbasierten Cacherichtlinie für Hypertext Transfer-Protokollressourcen (http und https) erklärt.
Richtlinie „Zwischenspeichern, sofern verfügbar“
Wenn sich eine gültige angeforderte Ressource im lokalen Cache befindet, wird die zwischengespeicherte Ressource verwendet. Andernfalls wird die Anforderung für die Ressource an den Server gesendet. Wenn die angeforderte Ressource in einem Cache zwischen dem Client und dem Server verfügbar ist, kann die Anforderung von einem Zwischen-Cache erfüllt werden.
Richtlinie „Nur zwischenspeichern“
Wenn sich eine gültige angeforderte Ressource im lokalen Cache befindet, wird die zwischengespeicherte Ressource verwendet. Wenn diese Cacherichtlinienebene angegeben wird, wird eine WebException-Ausnahme ausgelöst, wenn sich das Element nicht im lokalen Cache befindet.
Richtlinie „Cache oder nur nächster Cache“
Wenn sich eine gültige angeforderte Ressource im lokalen Cache oder einem Zwischen-Cache auf dem lokalen Netzwerk befindet, wird die zwischengespeicherte Ressource verwendet. Andernfalls wird eine WebException-Ausnahme ausgelöst. Im HTTP-Cacheprotokoll wird dies erreicht, indem die Cachesteuerungsanweisung „only-if-cached“ verwendet wird.
Richtlinie „Kein Cache, kein Speicher“
Eine angeforderte Ressource wird nie aus einem Cache heraus verwendet und nie in einen Cache platziert. Wenn eine angeforderte Ressource im lokalen Cache vorhanden ist, wird sie entfernt. Diese Richtlinienebene gibt für Zwischen-Caches an, dass sie die Ressource ebenfalls entfernen sollten. Im HTTP-Cacheprotokoll wird dies erreicht, indem die Cachesteuerungsanweisung „no-store“ verwendet wird.
Aktualisierungsrichtlinie
Eine angeforderte Ressource kann verwendet werden, wenn sie vom Server abgerufen oder in einem anderen Cache als dem lokalen Cache gefunden wurde. Bevor die Anforderung von einem Zwischencache ausgeführt werden kann, muss dieser Cache den zwischengespeicherten Eintrag anhand des Servers neu überprüfen. Im HTTP-Cacheprotokoll wird dies erreicht, indem die Cachesteuerungsanweisung „max-age = 0“ und der Pragma-Header „no-cache“ verwendet werden.
Richtlinie zum erneuten Laden
Angeforderte Ressourcen müssen vom Server abgerufen werden. Die Antwort wird möglicherweise im lokalen Cache gespeichert. Im HTTP-Cacheprotokoll wird dies erreicht, indem die Cachesteuerungsanweisung „no-cache“ und der Pragma-Header „no-cache“ verwendet werden.
Richtlinie zum erneuten Überprüfen
Vergleicht die Kopie der Ressource im Cache mit der Kopie auf dem Server. Wenn die Kopie auf dem Server neuer ist, wird sie zum Erfüllen der Anforderung verwendet und ersetzt die Kopie im Cache. Wenn die Kopie im Cache mit der Serverkopie übereinstimmt, wird die zwischengespeicherte Kopie verwendet. Im HTTP-Cacheprotokoll erfolgt dies durch eine bedingte Anforderung.