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

Два обмеження проксі поводяться по-різному: трафік може не дати idle-таймеру спливти, але не може подовжити absolute межу часу життя. Своє слово має й протокол призначення. Внутрішній HTTP-клієнт може закрити своє з'єднання; застосунок WebSocket може завершити свій сеанс. Після цього проксі не може підтримувати той сеанс призначення живим.

Тунель прив'язаний до своєї цілі. Щойно байти тунелю почали текти, з'єднання вже не є звичайним каналом HTTP-запитів, у якому можна видати ще один CONNECT для не пов'язаного призначення. Клієнту потрібне інше з'єднання або інший тунель, яким керує його бібліотека.

Для постійного потоку плануйте перепідключення, використовуючи підтримувані клієнтом механізми живучості та з'єднання. Якщо він закривається після тиші, політика неактивності — корисна підказка; якщо закривається через фіксований час попри трафік, дослідіть абсолютну межу. Для потоку WebSocket також відновлюйте стан застосунку після перепідключення.

Схожі статті