estructura HTTP_TIMEOUT_LIMIT_INFO (http.h)

La estructura HTTP_TIMEOUT_LIMIT_INFO define los límites de tiempo de espera de conexión específicos de la aplicación.

Esta estructura se debe usar al establecer o consultar HttpServerTimeoutsProperty en una cola de grupo de direcciones URL, sesión de servidor o solicitud.

Sintaxis

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;

Miembros

Flags

Estructura HTTP_PROPERTY_FLAGS que especifica si la propiedad está presente.

EntityBody

El tiempo, en segundos, permitido para que llegue el cuerpo de la entidad de solicitud.

La API del servidor HTTP activa este temporizador cuando la solicitud tiene un cuerpo de entidad. La expiración del temporizador se establece inicialmente en el valor configurado. Cuando la API del servidor HTTP recibe indicaciones de datos adicionales en la solicitud, restablece el temporizador para dar a la conexión otro intervalo.

DrainEntityBody

El tiempo, en segundos, permitido para que la API del servidor HTTP agote el cuerpo de la entidad en una conexión Keep-Alive.

En una conexión de Keep-Alive, después de que la aplicación haya enviado una respuesta para una solicitud y antes de que el cuerpo de la entidad de la solicitud haya llegado por completo, la API del servidor HTTP comienza a purgar el resto del cuerpo de la entidad para llegar a otra solicitud potencialmente canalización del cliente. Si el tiempo para purgar el cuerpo de la entidad restante supera el período permitido, se agota el tiempo de espera de la conexión.

RequestQueue

El tiempo, en segundos, permitido para que la solicitud permanezca en la cola de solicitudes antes de que la aplicación la recoja.

IdleConnection

El tiempo, en segundos, permitido para una conexión inactiva.

Este tiempo de espera solo se aplica después de que la primera solicitud de la conexión se enrute a la aplicación. Para obtener más información, vea la sección Comentarios.

HeaderWait

El tiempo, en segundos, permitido para que la API del servidor HTTP analice el encabezado de solicitud.

Este tiempo de espera solo se aplica después de que la primera solicitud de la conexión se enrute a la aplicación. Para obtener más información, vea la sección Comentarios.

MinSendRate

La velocidad mínima que se envía, en bytes por segundo, para la respuesta. La velocidad de envío de respuesta predeterminada es de 150 bytes por segundo.

Para deshabilitar este temporizador, establezca MinSendRate en MAXULONG.

Comentarios

Esta estructura se usa en las funciones HttpQueryServerSessionProperty y HttpSetServerSessionProperty para establecer o consultar los tiempos de espera de conexión. En la tabla siguiente se enumeran los tiempos de espera predeterminados.

Temporizador Valor predeterminado de la API del servidor HTTP Configuración en toda la API del servidor HTTP Configuración específica de la aplicación
EntityBody 2 minutos No
DrainEntityBody 2 minutos No
RequestQueue 2 minutos No
IdleConnection 2 minutos Limitado
HeaderWait 2 minutos Limitado
MinSendRate 150 bytes/segundo No
 

Llamar a HttpSetServerSessionProperty o HttpSetUrlGroupProperty para configurar un tiempo de espera de conexión afecta solo a la aplicación que realiza la llamada y no establece límites de tiempo de espera de todo el controlador. Los temporizadores de espera de encabezado y conexión inactiva se pueden configurar para todas las aplicaciones HTTP mediante una llamada a HttpSetServiceConfiguration. Se requieren privilegios administrativos para configurar tiempos de espera amplios de la API de HTTP Server. Las configuraciones en toda la API del servidor HTTP afectan a todas las aplicaciones HTTP del equipo y se conservan cuando se apaga el equipo.

Los temporizadores IdleConnection y HeaderWait específicos de la aplicación se establecen de forma limitada. La API del servidor HTTP no puede determinar la cola de solicitudes o el grupo de direcciones URL a los que está asociada la solicitud hasta que se hayan analizado los encabezados. Por lo tanto, la API del servidor HTTP aplica los temporizadores IdleConnection y HeaderWait predeterminados para la primera solicitud en una conexión. Las solicitudes posteriores en una conexión de Keep-Alive usarán los tiempos de espera específicos de la aplicación.

Establecer un tiempo de espera en una sesión de servidor afecta a todos los grupos de direcciones URL de la sesión del servidor. Sin embargo, si el grupo de direcciones URL ha configurado un tiempo de espera, el valor del grupo de direcciones URL tiene prioridad sobre la configuración de la sesión del servidor.

Establecer un tiempo de espera en cero en una sesión de servidor hace que la API del servidor HTTP revierta al valor predeterminado de ese temporizador. En el caso de los temporizadores establecidos en un grupo de direcciones URL, se usa el tiempo de espera de la sesión del servidor si está presente; de lo contrario, se usa el valor predeterminado de la API del servidor HTTP.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Encabezado http.h

Consulte también

Estructuras de la API de servidor HTTP versión 2.0

HTTP_SERVER_PROPERTY

HttpQueryRequestQueueProperty

HttpQueryServerSessionProperty

HttpQueryUrlGroupProperty

HttpSetRequestQueueProperty

HttpSetServerSessionProperty

HttpSetUrlGroupProperty