Kernelmoduscache

Die HTTP Server Version 2.0-API ermöglicht Anwendungen das Zwischenspeichern von Antworten mit statischem Inhalt im Kernelmodus. Eine höhere Leistung wird erreicht, wenn Anforderungen aus dem Kernelcache bereitgestellt werden, ohne in den Benutzermodus zu wechseln.

Die HTTP-Server-API wendet die entsprechenden Eigenschaftenkonfigurationen auf alle Anforderungen an, die vom Kernelcache bereitgestellt werden, einschließlich Protokollierungsantworten. Anforderungen, die eine Authentifizierung erfordern, werden jedoch nicht aus dem Cache bereitgestellt.

Die HTTP-Server-API beschränkt den Kernelmoduscache auf Anforderungen, die die folgenden Bedingungen erfüllen:

  • Die Anforderung verb ist GET und die gesamte Anforderung wird empfangen.
  • Die Anforderung darf keinen Entitätstext aufweisen.
  • Das HTTP-Protokoll ist Version 1.0 oder höher.
  • Die Kopfzeile "Translate: f" ist nicht vorhanden.
  • Erwarten Sie, dass andere Kopfzeilen als "Expect: 100-Continue" nicht vorhanden sind.
  • Der Autorisierungsheader ist nicht vorhanden.
  • Die Range Kopfzeilen und If-Range Die Kopfzeilen sind nicht vorhanden.

Zusätzlich zu den Einschränkungen für die Anforderung muss die Antwort auch die folgenden Bedingungen erfüllen:

  • Die Antwortgröße ist standardmäßig auf 256 KB beschränkt. Um die Größe der zwischengespeicherten Antwort zu ändern, legen Sie die UriMaxUriBytes Registrierungswert auf die erforderliche Anzahl von Bytes fest.

    HKEY_LOCAL_MACHINE
       System
          CurrentControlSet
             Services
                HTTP
                   Parameters
                      UriMaxUriBytes
    
  • Die gesamte Antwort muss in einem einzigen Aufruf von HttpSendHttpResponsebereitgestellt werden.

  • Der Datumsheader der Antwort darf nicht unterdrückt werden.

  • Wenn der zuletzt geänderte Header vorhanden ist, muss der Wert des Headers die richtige Syntax aufweisen. Der Zeitwert in diesem Header wird für die Überprüfung der Cachesteuerung verwendet.

  • Der Kernelmoduscache verfügt über genügend Speicherplatz, um die Antwort zu speichern.

Standardmäßig ist der Kernelmodus-Antwortcache aktiviert. Wenn eine der oben aufgeführten Bedingungen für die oben aufgeführte Anforderung oder Antwort nicht erfüllt ist, wird die Antwort gesendet, aber sie wird nicht zwischengespeichert. In der HTTP Server Version 2.0-API enthält HttpSendHttpResponse- einen optionalen pCachePolicy Parameter zum Übergeben der HTTP_CACHE_POLICY Struktur. Anwendungen verwenden die Cacherichtlinienstruktur, um den Cache zu konfigurieren.