Nenhum RFC parece escrito para isso! mas há algum valor padrão do servidor web principal.
IIS : connectionTimeout;
O cronômetro HTTP.sys Timer_EntityBody expirou. A conexão expirou antes da chegada do corpo da entidade de solicitação. Quando está claro que uma solicitação tem um corpo de entidade, a API HTTP ativa o timer Timer_EntityBody. Inicialmente, o limite desse timer é definido como o valor connectionTimeout. Cada vez que outra indicação de dados é recebida nessa solicitação, a API HTTP redefine o cronômetro para fornecer a conexão por mais minutos, conforme especificado no atributo connectionTimeout.
<system.applicationHost>
<sites>
<siteDefaults>
**<limits connectionTimeout="00:02:00" />**
</siteDefaults>
</sites>
</system.applicationHost>
Padrão: cabeçalho = 20-40, MinRate = 500 corpo = 20, MinRate = 500
Allow 10 seconds to receive the request including the headers and 30 seconds for receiving the request body:
RequestReadTimeout header=10 body=30
Allow at least 10 seconds to receive the request body. If the client sends data, increase the timeout by 1 second for every 1000 bytes received, with no upper limit for the timeout (except for the limit given indirectly by LimitRequestBody):
RequestReadTimeout body=10,MinRate=1000
Allow at least 10 seconds to receive the request including the headers. If the client sends data, increase the timeout by 1 second for every 500 bytes received. But do not allow more than 30 seconds for the request including the headers:
RequestReadTimeout header=10-30,MinRate=500
Usually, a server should have both header and body timeouts configured. If a common configuration is used for http and https virtual hosts, the timeouts should not be set too low:
RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
Editado:
Se você está falando do lado do cliente; então é algo codificado. De acordo com o selecione a função ; o buffer de leitura pode retornar nesses casos:
readfds:
- If listen has been called and a connection is pending, accept will succeed.
- Data is available for reading (includes OOB data if SO_OOBINLINE is enabled).
- Connection has been closed/reset/terminated.
Isso significa que entre a chamada de seleção, enquanto a conexão remota não for interrompida, a seleção não retornará nada e esperará até um valor que você defina para fechar a conexão no lado do cliente.