Limitazione delle connessioni per server da parte di WinInet

Dichiarazione di non responsabilità per contenuto KB ritirato

Il contenuto di questo articolo è riferito a prodotti per cui Microsoft non offre più il supporto. Questo articolo viene pertanto offerto "così com'è" e non sarà più aggiornato.

Sommario

WinInet limita il numero di connessioni simultanee che è possibile eseguire a un server HTTP. Se si supera questo limite, le richieste vengono bloccate finché una delle connessioni in corso non è stata completata. Si tratta di una caratteristica di progettazione definita nel rispetto delle specifiche HTTP e degli standard di settore.

Informazioni

WinInet limita a quattro le connessioni simultanee a un server HTTP 1.0 e a due le connessioni simultanee a un server HTTP 1.1. Il limite di due connessioni simultanee è imposto dalla specifica HTTP 1.1 (RFC 2616), mentre il limite di quattro connessioni simultanee per i server HTTP 1.0 è una scelta indipendente dettata dalla volontà di conformarsi allo standard utilizzato in vari browser molto diffusi.

L'unico riscontro pratico dell'esistenza di questa limitazione alla propria applicazione è dato dal fatto che chiamate quali HttpSendRequest e InternetOpenURL impiegano più tempo per essere portate a termine, dato che è necessario attendere il completamento delle connessioni precedenti prima che sia possibile inviare le relative richieste.

È possibile configurare WinInet in modo da superare tale limite creando e impostando le seguenti voci del Registro di sistema:

Nota Modificando queste impostazioni si costringe WinInet a infrangere le specifiche del protocollo HTTP. Pertanto la modifica delle impostazioni deve essere eseguita solo se assolutamente necessaria, e mentre sono attive tali impostazioni è consigliabile evitare di eseguire le comuni operazioni di esplorazione del Web:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

MaxConnectionsPerServer REG_DWORD (valore predefinito 2)

Imposta il numero di richieste simultanee per un server HTTP 1.1

MaxConnectionsPer1_0Server REG_DWORD (valore predefinito 4)
Imposta il numero di richieste simultanee per un server HTTP 1.0
Queste impostazioni vengono definite per un particolare utente e non hanno effetto sugli altri utenti che accedono al computer.

In Internet Explorer 5 è possibile modificare a livello di programmazione il limite di connessioni chiamando la funzione InternetSetOption in un handle NULL con i flag riportati di seguito (in questo modo il limite delle connessioni verrà modificato per l'intero processo):
INTERNET_OPTION_MAX_CONNS_PER_SERVER INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER
Nota Se il processo ha stabilito una connessione a un server e si modifica il limite delle connessioni chiamando InternetSetOption, la funzione non incide su ulteriori connessioni allo stesso server. Ciò avviene anche se una precedente connessione viene disconnessa prima della chiamata a InternetSetOption. Il limite di connessioni non riguarda tutti gli altri server.
Proprietà

ID articolo: 183110 - Ultima revisione: 26 ott 2007 - Revisione: 1

Feedback