estrutura HTTP_TIMEOUT_LIMIT_INFO (http.h)
A estrutura HTTP_TIMEOUT_LIMIT_INFO define os limites de tempo limite de conexão específicos do aplicativo.
Essa estrutura deve ser usada ao definir ou consultar o HttpServerTimeoutsProperty em um grupo de URL, sessão de servidor ou fila de solicitação.
Sintaxe
typedef struct _HTTP_TIMEOUT_LIMIT_INFO {
HTTP_PROPERTY_FLAGS Flags;
USHORT EntityBody;
USHORT DrainEntityBody;
USHORT RequestQueue;
USHORT IdleConnection;
USHORT HeaderWait;
ULONG MinSendRate;
} HTTP_TIMEOUT_LIMIT_INFO, *PHTTP_TIMEOUT_LIMIT_INFO;
Membros
Flags
A estrutura HTTP_PROPERTY_FLAGS que especifica se a propriedade está presente.
EntityBody
O tempo, em segundos, permitiu que o corpo da entidade de solicitação chegasse.
A API do servidor HTTP ativa esse temporizador quando a solicitação tem um corpo de entidade. A expiração do temporizador é inicialmente definida como o valor configurado. Quando a API do servidor HTTP recebe indicações de dados adicionais na solicitação, ela redefine o temporizador para dar à conexão outro intervalo.
DrainEntityBody
O tempo, em segundos, permitiu que a API do servidor HTTP esvaziasse o corpo da entidade em uma conexão Keep-Alive.
Em uma conexão Keep-Alive, depois que o aplicativo enviar uma resposta para uma solicitação e antes que o corpo da entidade de solicitação tenha chegado completamente, a API do servidor HTTP começa a esvaziar o restante do corpo da entidade para alcançar outra solicitação potencialmente pipelined do cliente. Se o tempo para esvaziar o corpo da entidade restante exceder o período permitido, a conexão atingirá o tempo limite.
RequestQueue
O tempo, em segundos, permitiu que a solicitação permanecesse na fila de solicitação antes que o aplicativo a pegasse.
IdleConnection
O tempo, em segundos, permitiu uma conexão ociosa.
Esse tempo limite só é imposto depois que a primeira solicitação na conexão é roteada para o aplicativo. Para obter mais informações, consulte a seção Comentários.
HeaderWait
O tempo, em segundos, permitiu que a API do servidor HTTP analisasse o cabeçalho da solicitação.
Esse tempo limite só é imposto depois que a primeira solicitação na conexão é roteada para o aplicativo. Para obter mais informações, consulte a seção Comentários.
MinSendRate
A taxa de envio mínima, em bytes por segundo, para a resposta. A taxa de envio de resposta padrão é de 150 bytes por segundo.
Para desabilitar esse temporizador, defina MinSendRate como MAXULONG.
Comentários
Essa estrutura é usada nas funções HttpQueryServerSessionProperty e HttpSetServerSessionProperty para definir ou consultar os tempos limite de conexão. A tabela a seguir lista os tempos limite padrão.
Timer | Padrão da API do Servidor HTTP | Configuração ampla da API do Servidor HTTP | Configuração específica do aplicativo |
---|---|---|---|
EntityBody | 2 minutos | No | Yes |
DrainEntityBody | 2 minutos | No | Yes |
Fila de Solicitação | 2 minutos | No | Yes |
IdleConnection | 2 minutos | Yes | Limitado |
HeaderWait | 2 minutos | Yes | Limitado |
MinSendRate | 150 bytes/segundo | No | Yes |
Chamar HttpSetServerSessionProperty ou HttpSetUrlGroupProperty para configurar um tempo limite de conexão afeta apenas o aplicativo de chamada e não define limites de tempo limite de todo o driver. Os temporizadores de espera de conexão e cabeçalho ociosos podem ser configurados para todos os aplicativos HTTP chamando HttpSetServiceConfiguration. Privilégios administrativos são necessários para configurar tempos limite de API do Servidor HTTP. As configurações amplas da API do Servidor HTTP afetam todos os aplicativos HTTP no computador e persistem quando o computador é desligado.
Os temporizadores IdleConnection e HeaderWait específicos do aplicativo são definidos em uma base limitada. A API do Servidor HTTP não pode determinar a fila de solicitação ou o grupo de URL ao qual a solicitação está associada até que os cabeçalhos sejam analisados. Portanto, a API do servidor HTTP impõe os temporizadores default IdleConnection e HeaderWait para a primeira solicitação em uma conexão. As solicitações subsequentes em uma conexão Keep-Alive usarão os tempos limite específicos do aplicativo.
Definir um tempo limite em uma sessão de servidor afeta todos os Grupos de URL na sessão do servidor. No entanto, se o Grupo de URL tiver configurado um tempo limite, a configuração do Grupo de URL terá precedência sobre a configuração da sessão do servidor.
Definir um tempo limite como zero em uma sessão de servidor faz com que a API do servidor HTTP reverter para o valor padrão desse temporizador. Para temporizadores definidos em um Grupo de URLs, o tempo limite da sessão do servidor será usado se estiver presente, caso contrário, o padrão da API do servidor HTTP será usado.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho | http.h |
Confira também
Estruturas da API do servidor HTTP versão 2.0