Pamięć podręczna trybu jądra

Interfejs API serwera HTTP w wersji 2.0 umożliwia aplikacjom buforowanie odpowiedzi przy użyciu zawartości statycznej w trybie jądra. Zwiększona wydajność jest osiągana, gdy żądania są obsługiwane z pamięci podręcznej jądra bez przechodzenia do trybu użytkownika.

Interfejs API serwera HTTP stosuje odpowiednie konfiguracje właściwości do wszystkich żądań obsługiwanych z pamięci podręcznej jądra, w tym odpowiedzi rejestrowania. Żądania, które wymagają uwierzytelniania, nie będą jednak obsługiwane z pamięci podręcznej.

Interfejs API serwera HTTP ogranicza pamięć podręczną trybu jądra do żądań spełniających następujące warunki:

  • Żądanie verb jest GET i całe żądanie jest odbierane.
  • Żądanie nie może mieć treści jednostki.
  • Protokół HTTP jest w wersji 1.0 lub nowszej.
  • Nagłówek "Translate: f" nie jest obecny.
  • Nie ma nagłówków innych niż "Expect: 100-Continue".
  • Nagłówek autoryzacji nie jest obecny.
  • Nagłówki Range i If-Range nie są obecne.

Oprócz ograniczeń dotyczących żądania odpowiedź musi również spełniać następujące warunki:

  • Rozmiar odpowiedzi jest domyślnie ograniczony do 256 KB. Aby zmienić rozmiar buforowanej odpowiedzi, ustaw wartość rejestru UriMaxUriBytes na wymaganą liczbę bajtów.

    HKEY_LOCAL_MACHINE
       System
          CurrentControlSet
             Services
                HTTP
                   Parameters
                      UriMaxUriBytes
    
  • Cała odpowiedź musi być podana w jednym wywołaniu, aby HttpSendHttpResponse.

  • Nagłówek daty w odpowiedzi nie może być pomijany.

  • Jeśli jest obecny ostatnio zmodyfikowany nagłówek, wartość nagłówka musi mieć poprawną składnię. Wartość czasu w tym nagłówku jest używana do weryfikacji kontroli pamięci podręcznej.

  • Pamięć podręczna trybu jądra ma wystarczającą ilość miejsca do przechowywania odpowiedzi.

Domyślnie pamięć podręczna odpowiedzi w trybie jądra jest włączona. Jeśli którykolwiek z warunków żądania lub odpowiedzi wymienionych powyżej nie zostanie spełniony, odpowiedź zostanie wysłana, ale nie zostanie ona buforowana. W interfejsie API serwera HTTP w wersji 2.0 HttpSendHttpResponse zawiera opcjonalny parametr pCachePolicy, aby przekazać strukturę HTTP_CACHE_POLICY. Aplikacje używają struktury zasad pamięci podręcznej do konfigurowania pamięci podręcznej.