Tarpinio serverio rotacija tarp užklausų, jungčių ir sesijų
Patikrinkite, ką rotacinis tarpinio serverio servisas iš tikrųjų rotuoja, prieš pridėdami Connection: close prie kiekvienos programos užklausos.
Antra užklausa per tą pačią šliuzą gali visiškai teisėtai naudoti tą patį viešą IP. Patikrinkite, kokią gyvavimo trukmę servisas naudoja savo rotacijai:
| Rotacijos vienetas | Ką lyginti |
|---|---|
| Užklausa | Kitas programos veiksmas ir jo stebima išeitis |
| Jungtis | Ar klientas pakartotinai panaudojo suderinamą jungtį, ar atidarė kitą |
| Tiekėjo sesija | Dokumentuota lipnios sesijos įvestis ir jos gyvavimo trukmė |
Connection: close nėra universali šliuzo instrukcija. Jei HTTPS yra CONNECT viduje, svetainės užklausos antraštė keliauja paskirties TLS viduje. Ji nepasako išoriniam tarpiniam serveriui, kurį viešą IP priskirti. HTTP/1.1 jungčiai būdinga semantika taip pat negali būti pernešama nepakeista į kiekvieną HTTP versiją ar transportą.
Jei dokumentuotas servisas, veikiantis kiekvienai jungčiai, reikalauja naujos jungties, naudokite kliento palaikomą gyvavimo ciklo valdymą ir atsižvelkite į pasikartojančias TCP/TLS nustatymo išlaidas. Jei rotacija seka tiekėjo sesiją, prisijungimas iš naujo gali išsaugoti ir tą sesiją, ir jos išeitį.
Atskirai užregistruokite užklausos identifikatorių, galinį tašką, susijusį sesijos raktą ir paskirties pusėje stebimą šaltinį. Jungties uždarymas patvirtina tik tą gyvavimo ciklo įvykį; patikrinkite kitam veiksmui pasirinktą išeitį pagal tikrąją serviso rotacijos sutartį.