Назад | Перейти на главную страницу

какова максимальная задержка ответа http?

Я пытаюсь понять, где разместить серверы, использующие HTTP-вызовы на другой сервер для получения результатов. Кажется, я не могу найти какое-либо определение HTTP, которое определяет максимальное время отклика, хотя я смутно помню 1800 мс.

Кто-нибудь знает, где это определяется, или даже имеет относительно авторитетный источник времени задержки?

Кажется, для этого не написано ни одного RFC! но есть какое-то значение по умолчанию с основного веб-сервера.

IIS: время соединения вышло;

Таймер HTTP.sys Timer_EntityBody истек. Соединение истекло до прибытия тела запроса. Когда становится ясно, что запрос имеет тело объекта, HTTP API включает таймер Timer_EntityBody. Первоначально предел этого таймера установлен на значение connectionTimeout. Каждый раз, когда по этому запросу получено новое указание данных, HTTP API сбрасывает таймер, чтобы дать соединению больше минут, как указано в атрибуте connectionTimeout.

<system.applicationHost>
   <sites>
      <siteDefaults>
         **<limits connectionTimeout="00:02:00" />**
      </siteDefaults>
   </sites>
</system.applicationHost>

Apache

По умолчанию: header = 20-40, MinRate = 500, body = 20, MinRate = 500

Подождите 10 секунд для получения запроса, включая заголовки, и 30 секунд для получения тела запроса:

Заголовок RequestReadTimeout = 10, тело = 30

Подождите не менее 10 секунд, чтобы получить тело запроса. Если клиент отправляет данные, увеличьте тайм-аут на 1 секунду для каждых 1000 полученных байтов, без верхнего предела тайм-аута (за исключением ограничения, заданного косвенно LimitRequestBody):

RequestReadTimeout тело = 10, MinRate = 1000

Подождите не менее 10 секунд, чтобы получить запрос, включая заголовки. Если клиент отправляет данные, увеличивайте тайм-аут на 1 секунду для каждых 500 полученных байтов. Но не допускайте более 30 секунд для запроса, включая заголовки:

Заголовок RequestReadTimeout = 10-30, MinRate = 500

Обычно на сервере должны быть настроены таймауты заголовка и тела. Если для виртуальных хостов http и https используется общая конфигурация, время ожидания не должно быть слишком низким:

Заголовок RequestReadTimeout = 20-40, MinRate = 500, тело = 20, MinRate = 500

Отредактировано:

Если вы имеете в виду на стороне клиента; тогда это что-то закодированное. Согласно Выбратьфункция; буфер чтения может вернуться в таких случаях:

readfds:

  • Если было вызвано прослушивание, а соединение ожидает завершения, accept будет успешным.
  • Данные доступны для чтения (включая данные OOB, если включен SO_OOBINLINE).
  • Соединение было закрыто / сброшено / прервано.

Это означает, что между вызовом select, пока удаленное соединение не разорвано, select ничего не вернет и будет ждать, пока значение, которое вы определите, закроет ваше соединение на стороне клиента.