structure HTTP_TIMEOUT_LIMIT_INFO (http.h)

La structure HTTP_TIMEOUT_LIMIT_INFO définit les limites de délai d’expiration de connexion spécifiques à l’application.

Cette structure doit être utilisée lors de la définition ou de l’interrogation de HttpServerTimeoutsProperty sur un groupe d’URL, une session serveur ou une file d’attente de requêtes.

Syntaxe

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;

Membres

Flags

Le HTTP_PROPERTY_FLAGS structure qui spécifie si la propriété est présente.

EntityBody

Temps, en secondes, autorisé pour l'arrivée du corps d'entité de demande.

L’API serveur HTTP active ce minuteur lorsque la requête a un corps d’entité. L’expiration du minuteur est initialement définie sur la valeur configurée. Lorsque l’API serveur HTTP reçoit des indications de données supplémentaires sur la demande, elle réinitialise le minuteur pour donner à la connexion un autre intervalle.

DrainEntityBody

Temps, en secondes, autorisé pour que l’API serveur HTTP vide le corps de l’entité sur une connexion Keep-Alive.

Sur une connexion Keep-Alive, une fois que l’application a envoyé une réponse pour une requête et avant que le corps de l’entité de requête soit complètement arrivé, l’API serveur HTTP commence à vider le reste du corps de l’entité pour atteindre une autre requête potentiellement pipeline à partir du client. Si le temps nécessaire pour vider le corps d’entité restant dépasse la période autorisée, le délai de connexion est expiré.

RequestQueue

Temps, en secondes, autorisé pour que la demande reste dans la file d’attente de requête avant que l’application ne la récupère.

IdleConnection

Temps, en secondes, autorisé pour une connexion inactive.

Ce délai d’attente n’est appliqué qu’une fois la première requête sur la connexion acheminée vers l’application. Pour plus d'informations, consultez la section Notes.

HeaderWait

Durée, en secondes, autorisée pour que l’API serveur HTTP analyse l’en-tête de la requête.

Ce délai d’attente n’est appliqué qu’une fois la première requête sur la connexion acheminée vers l’application. Pour plus d'informations, consultez la section Notes.

MinSendRate

Vitesse d'envoi minimale, en octets par seconde, pour la réponse. Le taux d’envoi de réponse par défaut est de 150 octets par seconde.

Pour désactiver ce minuteur, définissez MinSendRate sur MAXULONG.

Remarques

Cette structure est utilisée dans les fonctions HttpQueryServerSessionProperty et HttpSetServerSessionProperty pour définir ou interroger les délais d’expiration de connexion. Le tableau suivant répertorie les délais d’expiration par défaut.

Minuteur API serveur HTTP par défaut Configuration à l’échelle de l’API du serveur HTTP Configuration spécifique à l’application
EntityBody 2 minutes Non Oui
DrainEntityBody 2 minutes Non Oui
RequestQueue 2 minutes Non Oui
IdleConnection 2 minutes Yes Limité
HeaderWait 2 minutes Yes Limité
MinSendRate 150 octets/seconde Non Oui
 

L’appel de HttpSetServerSessionProperty ou HttpSetUrlGroupProperty pour configurer un délai d’expiration de connexion affecte uniquement l’application appelante et ne définit pas de limites de délai d’attente au large du pilote. La connexion inactive et les minuteurs d’attente d’en-tête peuvent être configurés pour toutes les applications HTTP en appelant HttpSetServiceConfiguration. Des privilèges d’administration sont requis pour configurer les délais d’expiration à l’échelle de l’API du serveur HTTP. Les configurations à l’échelle de l’API du serveur HTTP affectent toutes les applications HTTP sur l’ordinateur et persistent lorsque l’ordinateur est arrêté.

Les minuteurs IdleConnection et HeaderWait spécifiques à l’application sont définis sur une base limitée. L’API de serveur HTTP ne peut pas déterminer la file d’attente de requêtes ou le groupe d’URL auquel la requête est associée tant que les en-têtes n’ont pas été analysés. Par conséquent, l’API serveur HTTP applique les minuteurs IdleConnection et HeaderWait par défaut pour la première requête sur une connexion. Les requêtes suivantes sur une connexion Keep-Alive utiliseront les délais d’expiration spécifiques à l’application.

La définition d’un délai d’attente sur une session de serveur affecte tous les groupes d’URL sous la session serveur. Toutefois, si le groupe d’URL a configuré un délai d’expiration, le paramètre du groupe d’URL est prioritaire sur la configuration de la session serveur.

La définition d’un délai d’attente sur zéro sur une session de serveur entraîne le rétablissement de la valeur par défaut de l’API du serveur HTTP pour ce minuteur. Pour les minuteurs définis sur un groupe d’URL, le délai d’expiration de session du serveur est utilisé le cas échéant, sinon, la valeur par défaut de l’API de serveur HTTP est utilisée.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
En-tête http.h

Voir aussi

Structures de l’API serveur HTTP version 2.0

HTTP_SERVER_PROPERTY

HttpQueryRequestQueueProperty

HttpQueryServerSessionProperty

HttpQueryUrlGroupProperty

HttpSetRequestQueueProperty

HttpSetServerSessionProperty

HttpSetUrlGroupProperty