Hvor lenge kan en CONNECT-tunnel være åpen?
Hold levetiden til en opprettet tunnel atskilt fra gjenbruk av HTTP-svar, mellomleddenes regler for lediggang og økten til målapplikasjonen selv.
CONNECT gir ingen garanti for en tunnel som er åpen i det uendelige. Etter en vellykket utveksling fører forbindelsen en fortsatt bytestrøm til verten og porten det ble spurt om. Den kan føre flere utvekslinger i en TLS-økt mot målet så lenge deltakerne og nettet holder den åpen.
To grenser i proxyen virker forskjellig: trafikk kan forhindre at en idle-timer utløper, men den kan ikke forlenge en absolutt grense for levetid. Protokollen på målet har også noe å si. En indre HTTP-klient kan lukke forbindelsen sin; en WebSocket-applikasjon kan avslutte økten sin. Proxyen klarer ikke å holde den økten på målet i live etterpå.
En tunnel er knyttet til målet sitt. Når tunnelbytene først flyter, er forbindelsen ikke lenger en vanlig kanal for HTTP-forespørsler der en kan sende en ny CONNECT for et urelatert mål. Klienten trenger en annen forbindelse eller en annen tunnel som biblioteket dens styrer.
For en vedvarende feed bør du planlegge gjenoppkobling med de mekanismene for levetid og tilkobling som klienten støtter. Lukker den etter stillhet, er en inaktivitetsregel et nyttig spor; lukker den etter en fast varighet selv om det går trafikk, bør du undersøke en absolutt grense. For en WebSocket-feed bør du i tillegg gjenopprette applikasjonstilstanden etter gjenoppkobling.