HTTP_TIMEOUT_LIMIT_INFO struttura (http.h)
La struttura HTTP_TIMEOUT_LIMIT_INFO definisce i limiti di timeout di connessione specifici dell'applicazione.
Questa struttura deve essere usata quando si imposta o si esegue una query su HttpServerTimeoutsProperty in un gruppo di URL, una sessione del server o una coda di richieste.
Sintassi
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;
Members
Flags
Struttura HTTP_PROPERTY_FLAGS che specifica se la proprietà è presente.
EntityBody
Tempo di attesa, in secondi, consentito per l'arrivo del corpo dell'entità di richiesta.
L'API server HTTP attiva questo timer quando la richiesta ha un corpo dell'entità. La scadenza del timer viene inizialmente impostata sul valore configurato. Quando l'API SERVER HTTP riceve indicazioni aggiuntive sui dati nella richiesta, reimposta il timer per assegnare un altro intervallo di connessione.
DrainEntityBody
Il tempo, in secondi, consentito all'API server HTTP di svuotare il corpo dell'entità in una connessione Keep-Alive.
In una connessione Keep-Alive, dopo che l'applicazione ha inviato una risposta per una richiesta e prima che il corpo dell'entità richiesta sia completamente arrivato, l'API server HTTP inizia a svuotare il resto del corpo dell'entità per raggiungere un'altra richiesta potenzialmente pipelineta dal client. Se il tempo per svuotare il corpo dell'entità rimanente supera il periodo consentito il timeout della connessione.
RequestQueue
Il tempo, in secondi, consentito per la richiesta di rimanere nella coda della richiesta prima che l'applicazione lo ritiri.
IdleConnection
Tempo di attesa, in secondi, consentito per una connessione inattiva.
Questo timeout viene applicato solo dopo che la prima richiesta sulla connessione viene instradata all'applicazione. Per altre informazioni, vedere la sezione Osservazioni.
HeaderWait
Tempo, in secondi, consentito all'API server HTTP di analizzare l'intestazione della richiesta.
Questo timeout viene applicato solo dopo che la prima richiesta sulla connessione viene instradata all'applicazione. Per altre informazioni, vedere la sezione Osservazioni.
MinSendRate
Frequenza di invio minima per la risposta, espressa in byte al secondo. La frequenza di trasmissione della risposta predefinita è di 150 byte al secondo.
Per disabilitare questo timer, impostare MinSendRate su MAXULONG.
Commenti
Questa struttura viene usata nelle funzioni HttpQueryServerSessionProperty e HttpSetServerSessionProperty per impostare o eseguire query sui timeout di connessione. Nella tabella seguente sono elencati i timeout predefiniti.
Timer | API SERVER HTTP predefinita | Configurazione a livello di API SERVER HTTP | Configurazione specifica dell'applicazione |
---|---|---|---|
EntityBody | 2 minuti | No | Sì |
DrainEntityBody | 2 minuti | No | Sì |
RequestQueue | 2 minuti | No | Sì |
IdleConnection | 2 minuti | Sì | Limitato |
HeaderWait | 2 minuti | Sì | Limitato |
MinSendRate | 150 byte/secondo | No | Sì |
La chiamata a HttpSetServerSessionProperty o HttpSetUrlGroupProperty per configurare un timeout di connessione influisce solo sull'applicazione chiamante e non imposta limiti di timeout a livello di driver. I timer di attesa di inattività e di attesa delle intestazioni possono essere configurati per tutte le applicazioni HTTP chiamando HttpSetServiceConfiguration. I privilegi amministrativi sono necessari per configurare i timeout a livello di API del server HTTP. Le configurazioni a livello di API SERVER HTTP influiscono su tutte le applicazioni HTTP nel computer e persistono quando il computer viene arrestato.
I timer IdleConnection e HeaderWait specifici dell'applicazione vengono impostati su base limitata. L'API server HTTP non può determinare la coda di richieste o il gruppo URL a cui la richiesta è associata fino a quando non sono state analizzate le intestazioni. Di conseguenza, l'API server HTTP applica i timer IdleConnection e HeaderWait predefiniti per la prima richiesta in una connessione. Le richieste successive in una connessione Keep-Alive useranno i timeout specifici dell'applicazione.
L'impostazione di un timeout in una sessione server influisce su tutti i gruppi di URL nella sessione del server. Tuttavia, se il gruppo DI URL ha configurato un timeout, l'impostazione per il gruppo DI URL ha la precedenza sulla configurazione della sessione del server.
L'impostazione di un timeout su zero in una sessione server causa il ripristino del valore predefinito dell'API server HTTP per tale timer. Per i timer impostati in un gruppo di URL, il timeout della sessione del server viene usato se presente, in caso contrario, viene usato il valore predefinito dell'API server HTTP.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2008 [solo app desktop] |
Intestazione | http.h |
Vedi anche
Strutture dell'API SERVER HTTP versione 2.0