Het wijzigen van de HTTP-Header Cache-Control bij gebruik van IIS


Samenvatting


Webbeheerders die gebruikmaken van Internet Information Services (IIS) moet mogelijk periodiek uitschakelen caching van inhoud die vaak verandert. In dit artikel wordt beschreven hoe de waarde van de HTTP-Header Cache-Control instellen met behulp van Active Server Pages (ASP) als de metabase-eigenschap CacheControlCustom.

Meer informatie


Wanneer u werkt met inhoud die vaak verandert, kunt u opgeven welke inhoud in de cache kan worden opgeslagen en welke niet meer, en als de client of een proxy-server in cache plaatst de inhoud. U kunt deze opties in IIS opgeven via de eigenschap CacheControlCustom , die kan worden ingesteld voor de hele server, een bepaalde website of een specifieke fysieke of virtuele map. Als u deze eigenschap geeft als resultaat de HTTP-headers die vergelijkbaar zijn met de volgende:
HTTP/1.1 200 OKServer: Microsoft-IIS/5.0Cache-Control: <CACHE SETTING>Content-Type: <type>/<subtype>Content-Length: <size of content>
De waarde van de cache wordt bepaald door de HTTP/1.1-specificatie.

Veelgebruikte HTTP/1.1 Cache-Control-headerwaarden

De specificatie HTTP/1.1 in RFC 2616 definieert verschillende waarden voor de header Cache-Control. De volgende lijst bevat enkele van de meest voorkomende waarden die worden gebruikt.
  • Openbare: de HTTP-reactie kan worden opgeslagen in een cache. Bijvoorbeeld, kan een client of een proxyserver het antwoord cache. Hierdoor kunnen delen van inhoud voor gebruikers die dezelfde proxyserver gebruiken.
  • Privé: het response-bericht voor een enkele client is bedoeld en moet niet worden opgeslagen in een gedeelde cache. Bijvoorbeeld een proxy-server niet in cache plaatst het antwoord ook al kan een client. Hierdoor kan de client een cacheversie behouden zolang andere clients die dezelfde proxyserver gebruiken verschillende versies van de cache.
  • No-cache: geen cache in het volledige pad moet onderhouden een kopie van het antwoord. Hiermee kunt u opgeven dat noch de client- of proxy server op een volgende aanvraag voor inhoud reageren zullen met behulp van een versie in de cache.

Als u de eigenschap Cache-Control

De volgende voorbeelden definiëren verschillende methoden voor het instellen van deze waarde:

Voor een pagina

Met behulp van Active Server Pages (ASP) de volgende ASP-code uitschakelen van een bepaalde pagina in de cache:
<% @Language="VBScript" %><% Response.CacheControl = "no-cache" %>
Opmerking: deze code aan het begin van de pagina moet worden ingevoegd als buffering is ingeschakeld, omdat deze is de HTTP-headers wijzigen.

Voor een map

De volgende voorbeelden is de Cache-Control instellen voor een map of virtuele map met de naam "Afbeeldingen" in de standaardwebsite:
  • Adsutil.vbs gebruiken:
    1. Open een opdrachtprompt en Ga naar de map C:\InetPub\AdminScripts.
    2. Voer de volgende opdracht uit:
      CSCRIPT ADSUTIL. VBS SET W3SVC/1/ROOT/images/CacheControlCustom "no-cache"
  • Met behulp van ADSI-scripts:
    1. Voer de volgende ADSI-code in Kladblok:
      Option ExplicitDim objCacheSet objCache = GetObject("IIS://localhost/w3svc/1/root/images")objCache.CacheControlCustom = "no-cache"objCache.SetInfo
    2. Sla het bestand op als Disablefolder.vbs in de map C:\InetPub\AdminScripts en sluit vervolgens Kladblok af.
    3. Wijzig bij een opdrachtprompt naar de map C:\InetPub\AdminScripts.
    4. Voer de volgende opdracht uit:
      CSCRIPT DISABLEFOLDER. VBS

VERWIJZINGEN

Raadpleeg het volgende Microsoft Knowledge Base-artikel voor meer informatie over dit onderwerp:
IIS 247389 : het in cache opslaan van specifieke MIME-typen uitschakelen
Zie ook de sectie 14,9 van de specificatie HTTP/1.1 in RFC 2616 op de volgende URL:
RFC 2616 Hypertext Transfer Protocol--HTTP/1.1