Cache do modo Kernel

A API do Servidor HTTP versão 2.0 permite que os aplicativos armazenem em cache respostas com conteúdo estático no modo kernel. O desempenho aumentado é obtido quando as solicitações são atendidas do cache de kernel sem fazer a transição para o modo de usuário.

A API do Servidor HTTP aplica as configurações de propriedade apropriadas a todas as solicitações atendidas do cache de kernel, incluindo respostas de log. No entanto, as solicitações que exigem autenticação não serão atendidas no cache.

A API do Servidor HTTP limita o cache do modo kernel às solicitações que atendem às seguintes condições:

  • O verbo de solicitação é GET e toda a solicitação é recebida.
  • A solicitação não deve ter um corpo de entidade.
  • O protocolo HTTP é a versão 1.0 ou posterior.
  • O cabeçalho "Translate: f" não está presente.
  • Os cabeçalhos de espera diferentes de "Esperar: 100-Continuar" não estão presentes.
  • O cabeçalho de autorização não está presente.
  • Os cabeçalhos Range e If-Range não estão presentes.

Além das restrições na solicitação, a resposta também deve atender às seguintes condições:

  • O tamanho da resposta é limitado a 256 KB, por padrão. Para alterar o tamanho da resposta armazenada em cache, defina o valor do Registro UriMaxUriBytes como o número necessário de bytes.

    HKEY_LOCAL_MACHINE
       System
          CurrentControlSet
             Services
                HTTP
                   Parameters
                      UriMaxUriBytes
    
  • Toda a resposta deve ser fornecida em uma única chamada para HttpSendHttpResponse.

  • O cabeçalho de data na resposta não deve ser suprimido.

  • Se o cabeçalho da última modificação estiver presente, o valor do cabeçalho deverá ter a sintaxe correta. O valor de hora nesse cabeçalho é usado para verificação de controle de cache.

  • O cache do modo kernel tem espaço suficiente para armazenar a resposta.

Por padrão, o cache de resposta do modo kernel está habilitado. Se qualquer uma das condições para a solicitação ou resposta listada acima não for atendida, a resposta será enviada, mas não será armazenada em cache. Na API do Servidor HTTP versão 2.0, HttpSendHttpResponse inclui um parâmetro pCachePolicy opcional para passar a estrutura HTTP_CACHE_POLICY . Os aplicativos usam a estrutura de política de cache para configurar o cache.