qual é a latência máxima de resposta http?

3

Estou tentando descobrir onde colocar servidores que usam chamadas HTTP para outro servidor para recuperar resultados. Não consigo localizar nenhuma definição de HTTP que defina o tempo máximo de resposta, embora tenha uma vaga lembrança de 1800 ms.

Alguém sabe onde isso está definido ou até mesmo tem uma fonte relativamente autoritativa para um tempo de latência?

    
por Jim B 28.06.2016 / 17:51

1 resposta

2

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>

Apache

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.

    
por 28.06.2016 / 20:09