Відповідь, яка час від часу доставляє кілька байтів, може залишатися в межах кожного ліміту бездіяльності читання, але загалом займати занадто багато часу. Тайм-аут читання не зобов'язаний вимірювати всю тривалість передавання.

Виберіть політику відповідно до навантаження. Скінченному архіву потрібен бюджет завершення; потік подій може законно тривати годинами й іноді мовчати.

Вимірюйте корисний прогрес

Для завантаження файлу зберігайте загальний дедлайн і враховуйте підтримувані клієнтом елементи керування низькою швидкістю або прогресом. Визначте інтервал і обсяг корисних даних. Байт серцебиття може показувати активність, не даючи реального прогресу до завершення файлу.

Тримайте налаштування тунелю окремо від передавання тіла. Очікування завершення CONNECT і отримання повільного тіла призначення — різні етапи з різними доказами.

Споживайте або закривайте відповідь на кожному шляху виходу. Залишений відкритим повільний потік може змусити наступний запит чекати ємності пулу, що створює ще один тайм-аут з іншої причини.

Якщо спостережувана тривалість перевищує задану політику, перевірте точну версію клієнта й цикл читання. Справний таймер бездіяльності, поведінка власного циклу й помилка реалізації потребують різних виправлень.

Схожі статті