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