Warm HTTPS teenoor 'n warm VPN: vergelyk dieselfde versoekpad
HTTPS doen nie by elke API-versoek 'n handskud nie, so 'n warm verbinding en 'n warm tonnel is nie mededingers nie. Vergelyk dieselfde versoekpatroon voordat jy kies.
Jy het seker al gelees dat HTTPS vir elke API-versoek 'n nuwe TCP-verbinding en 'n nuwe TLS-handskud oopmaak, en daarom lyk 'n tonnel wat 'n uur lank aan bly goedkoper. Die eerste helfte daarvan is gewoonlik onwaar. 'n Ondersteunde kliënt hergebruik 'n gevestigde verbinding vir baie uitruilings, en 'n maatstaf wat per oproep 'n nuwe kliënt bou, meet lewensiklus eerder as beskerming. Die res van hierdie bladsy handel oor wat jy eerder moet meet.
Wat hergebruik werklik vereis
Volharding is deel van die HTTP-model eerder as 'n truuk: een verbinding dra verskeie versoek-respons-uitruilings. Die verbinding eindig wanneer een van die twee kante dit sluit, wanneer die bediener 'n ledige of oorlaaide verbinding aftree, of wanneer 'n kop- of protokolreël sê die verbinding kan nie hergebruik word nie. HTTPS plaas daardie gesprek binne TLS sonder om vir elke uitruiling 'n nuwe handskud te eis. Dus herhaal 'n tweede versoek nie die eerste versoek se handskud nie, tensy iets intussen die verbinding beëindig het.
Hergebruik het ook een voorwaarde wat toepassings maklik breek. 'n Kliënt wat van plan is om 'n verbinding te hergebruik, moet die volledige responsliggaam lees, en 'n respons wat halfpad laat vaar word, is die gewone manier waarop poelvorming verdwyn sonder dat iemand dit agterkom.
Kontroleer die biblioteek se ondersteunde kliënt en die lewensiklus van die verbindingspoel eerder as om aan te neem dat poelvorming aan of af is. Teken ook die onderhandelde HTTP-weergawe aan, want HTTP/2 en HTTP/3 hanteer verbindingshergebruik anders as HTTP/1.1. Behandel die onderhandelde weergawe as deel van die meting, nie as 'n voetnoot nie.
Waarom die vergelyking lewensiklus meet
Om vir elke bewerking 'n nuwe kliënt te skep en dit met 'n tonnel wat al 'n uur lank verbind is te vergelyk, vergelyk verbindingsopstelling met 'n bestendige toestand. Dit is 'n geldige maatstaf, en dit is nie HTTPS teenoor VPN nie. Twee lopies met dieselfde kliëntkonfigurasie beskryf die gedrag beter as een, veral wanneer die eerste lopie 'n naslaan- of verbindingskas warm maak.
Hou die API-bewerking, die bediener, die rekening en die data konstant, anders dra die vergelyking meer as een veranderlike. Besluit vooraf waar jy die tydhouer plaas, want opstelling, TLS-onderhandeling, toepassingsuitvoering en responslewering dra elk anders by tot die totaal. 'n Enkele tydhouer vir die eerste versoek kenmerk die opstelling en sê niks oor die bestendige verkeer wat jy werklik dryf nie. Skryf die tydhouergrense neer langs die syfers.
Skei koue opstelling van warm versoeke
Meet die eerste versoek afsonderlik van die wat daarop volg. Voeg dan by wat die diens werklik sien: ledige tydperke, uitbarstings, gelyktydigheid, responsgrootte en herverbindings.
Hou sertifikaatvalidering en HTTPS geaktiveer op albei paaie, want om hulle te verwyder meet 'n ander sekuriteitsontwerp eerder as 'n vinniger een. As die tonnel die roete of die ligging van die poort verander, rapporteer daardie verskil afsonderlik eerder as om elke tydsverandering aan enkripsie toe te skryf, want pad, verlies en toustaan kan 'n klein versoek oorheers. Hardloop elke pad twee keer oor dieselfde roete voordat jy 'n gevolgtrekking maak. Teken die onderhandelde protokol en die tydhouergrense by albei lopies aan.
Beplan vir die verbinding wat sluit
Volhardend beteken nie permanent nie. 'n Bediener, 'n proxy of 'n netwerkverandering kan 'n verbinding tydens 'n ledige tydperk sluit, en die kliënt moet herstel deur die gedrag wat sy biblioteek ondersteun. Daardie herstel het 'n toestandsmasjien: die versoek het dalk op die bediener voltooi, of dit het misluk voordat die bediener dit gelees het, en 'n geslote sokkie sê nie vir die oproeper watter een gebeur het nie. 'n Nie-idempotente bewerking in daardie posisie kan nie sommer weer gespeel word nie, want 'n herhaling maak 'n onbekende uitkoms in 'n dubbele skryf verander. Dit is waar 'n warm tonnel en 'n warm verbinding eenders optree, want albei kan misluk op die oomblik wanneer werk onderweg is.
Gebruik die diens se gedokumenteerde herprobeer- of idempotensiemeganisme eerder as 'n lus wat die sokkie weer oopmaak. Toets die herstel uitdruklik deur 'n ledige verbinding te sluit en te kyk wat die kliënt volgende doen. Om 'n sokkie weer oop te maak, maak die herhaling van 'n toestandveranderende oproep nie veilig nie.
Kies eers die grens en stel dan in
Kies die netwerkgrens op grond van die toegang- en vertrouensvereistes voordat jy enigiets optimaliseer. 'n VPN beskerm die segment tussen sy eweknieë, terwyl die toepassing se eindpunte en enige gewone-teks-segment buite die tonnel steeds saak maak. Stel dan die verbindingslewensiklus binne daardie grens in. Die gevolgtrekking dat die tonnel goedkoper is, volg net uit die oortuiging dat elke versoek die handskud herhaal, en dit is juis daardie oortuiging wat hier getoets word.
Die volhardingsafdeling van RFC 9112 is die verwysing vir wat hergebruik werklik belowe, insluitend die voorwaardes wat 'n verbinding beëindig. Lees dit een keer voordat jy 'n maatstaf vertrou wat dit ignoreer.