Cache-Control-HTTP-Header ändern, wenn Sie IIS verwenden


Zusammenfassung


Webadministratoren (Internet Information Services, IIS) verwenden müssen regelmäßig deaktiviert das Zwischenspeichern von Inhalten, die sich häufig ändern. Dieser Artikel beschreibt die Cache-Control -HTTP-Header mit Active Server Pages (ASP) sowie die Metabasiseigenschaft CacheControlCustomfestgelegt.

Weitere Informationen


Wenn Sie Inhalt verwenden, ändert sich häufig, Sie möchten festlegen, welcher Inhalt zwischengespeichert werden kann und was nicht, und wenn der Client oder einen Proxy-Server den Inhalt zwischenspeichern soll. Sie können diese Optionen in IIS über CacheControlCustom -Eigenschaft angeben, die für den gesamten Server, eine bestimmte Website oder eine bestimmte physische oder virtuelle Verzeichnis festgelegt werden kann. Diese Einstellung gibt die HTTP-Header, die den folgenden ähneln:
HTTP/1.1 200 OKServer: Microsoft-IIS/5.0Cache-Control: <CACHE SETTING>Content-Type: <type>/<subtype>Content-Length: <size of content>
Wert der Einstellung bestimmt die HTTP/1.1-Spezifikation.

HTTP/1.1 häufig verwendete Cache-Control-Headerwerte

HTTP/1.1-Spezifikation in RFC 2616 definiert mehrere Werte für den Cache-Control-Header. Die folgende Liste enthält einige der häufigsten Werte verwendet werden.
  • Öffentlich: der HTTP-Antwort kann durch einen beliebigen Cache zwischengespeichert werden. Beispielsweise kann ein Client oder ein Proxyserver die Antwort zwischenspeichern. Dadurch wird der Inhalt unternehmensweit Benutzer denselben Server.
  • Privat: die Antwortnachricht für einen einzelnen Client vorgesehen und nicht von gemeinsam genutzten Cache zwischengespeichert werden. Beispielsweise sollte ein Proxyserver die Antwort nicht zwischengespeichert, obwohl ein Client kann. Dadurch kann der Client eine zwischengespeicherte Version beibehalten, während andere Clients, die den gleichen Proxyserver verwenden verschiedene zwischengespeicherte Versionen verwalten.
  • No-Cache: kein Cache im gesamten Pfad sollte eine zwischengespeicherte Kopie der Antwort beizubehalten. So können Sie angeben, dass weder der Client oder Proxy Server auf eine nachfolgende Anforderung Content mithilfe einer zwischengespeicherten Version.

Die Cache-Control-Eigenschaft

Die folgenden Beispiele definieren verschiedene Methoden zum Einstellen dieses Wertes:

Für eine Seite

Active Server Pages (ASP) mit der folgende ASP-Code deaktiviert das Zwischenspeichern einer bestimmten Seite:
<% @Language="VBScript" %><% Response.CacheControl = "no-cache" %>
Hinweis: dieser Code eingefügt werden muss am Anfang der Seite, wenn die Pufferung aktiviert ist, da die HTTP-Header geändert werden.

Für einen Ordner

Die folgenden Beispiele stellen die Cache-Control -Einstellung für einen Ordner oder ein virtuelles Verzeichnis namens "Bilder" auf der Standardwebsite:
  • Verwenden "Adsutil.vbs":
    1. Öffnen Sie ein Eingabeaufforderungsfenster, und ändern Sie Ordner C:\InetPub\AdminScripts.
    2. Führen Sie den folgenden Befehl aus:
      CSCRIPT ADSUTIL. VBS festgelegt W3SVC/1/ROOT/Images/CacheControlCustom "No-Cache"
  • Verwenden von ADSI Scripting:
    1. Geben Sie im Editor folgenden ADSI-Code:
      Option ExplicitDim objCacheSet objCache = GetObject("IIS://localhost/w3svc/1/root/images")objCache.CacheControlCustom = "no-cache"objCache.SetInfo
    2. Speichern Sie die Datei als Disablefolder.vbs im Ordner C:\InetPub\AdminScripts, und schließen Sie Editor.
    3. Ändern Sie in einer Befehlszeile Ordner C:\InetPub\AdminScripts.
    4. Führen Sie den folgenden Befehl aus:
      CSCRIPT DISABLEFOLDER. VBS

Informationsquellen

Weitere Informationen zu diesem Thema finden Sie im folgenden Artikel der Microsoft Knowledge Base:
247389 IIS: Zwischenspeichern von bestimmten MIME-Typen deaktivieren
Darüber hinaus Abschnitt 14.9 HTTP/1.1-Spezifikation in RFC 2616 unter der folgenden URL:
RFC 2616 Hypertext Transfer Protocol--HTTP/1.1