Soe HTTPS ja soe VPN: võrrelge sama päringuteed
HTTPS ei tee iga API-päringu juures käepigistust, seega soe ühendus ja soe tunnel ei ole rivaalid. Enne valimist võrrelge sama päringumustrit.
Olete ilmselt lugenud, et HTTPS avab iga API-päringu jaoks uue TCP-ühenduse ja uue TLS-i käepigistuse, mistõttu tundub tund aega püsti püsiv tunnel odavam. Selle esimene pool on tavaliselt vale. Toetatud klient kasutab paljude vahetuste jaoks uuesti juba loodud ühendust ning mõõdik, mis loob iga kutse jaoks uue kliendi, mõõdab elutsüklit, mitte kaitset. Ülejäänud lehel räägime sellest, mida hoopis mõõta.
Mida uuestikasutus tegelikult nõuab
Püsivus on HTTP-mudeli osa, mitte nipp: üks ühendus kannab mitut päringu ja vastuse vahetust. Ühendus lõpeb siis, kui kumbki pool selle sulgeb, kui server lõpetab jõudeoleva või ülekoormatud ühenduse või kui päis või protokollireegel ütleb, et ühendust ei saa uuesti kasutada. HTTPS paigutab selle vestluse TLS-i sisse, ilma et nõuaks iga vahetuse jaoks uut käepigistust. Nii et teine päring ei korda esimese päringu käepigistust, kui vahepeal ei ole miski ühendust lõpetanud.
Uuestikasutusel on ka üks tingimus, mille rakendused kergesti rikuvad. Klient, kes kavatseb ühendust uuesti kasutada, peab lugema kogu vastuse keha, ja poole pealt hüljatud vastus on tavaline viis, kuidas ühenduste kogum märkamatult kaob.
Kontrollige teegi toetatud klienti ja ühenduste kogumi elutsüklit, selle asemel et eeldada, et koondamine on sisse või välja lülitatud. Pange kirja ka kokku lepitud HTTP-versioon, sest HTTP/2 ja HTTP/3 käsitlevad ühenduse uuestikasutust teisiti kui HTTP/1.1. Käsitlege kokku lepitud versiooni mõõtmise osana, mitte allmärkusena.
Miks võrdlus mõõdab elutsüklit
Iga toimingu jaoks värske kliendi loomine ja selle võrdlemine tunneliga, mis on olnud tund aega ühendatud, võrdleb ühenduse loomist püsiolekuga. See on legitiimne mõõdik ja see ei ole HTTPS versus VPN. Kaks sama kliendikonfiguratsiooniga jooksutust kirjeldavad käitumist paremini kui üks, eriti kui esimene jooksutus soojendab resolverit või ühenduste vahemälu.
Hoidke API-toiming, server, konto ja andmed konstantsena, muidu kannab võrdlus rohkem kui ühte muutujat. Otsustage eelnevalt, kuhu taimer paigutate, sest seadistamine, TLS-i läbirääkimine, rakenduse täitmine ja vastuse kohaletoimetamine annavad kogusummasse erineva panuse. Üks esimese päringu taimer iseloomustab seadistamist ega ütle midagi püsiva liikluse kohta, mida tegelikult juhite. Kirjutage taimeri piirid numbrite kõrvale.
Eraldage külm seadistamine soojadest päringutest
Mõõtke esimest päringut järgnevatest eraldi. Seejärel lisage, mida teenus tegelikult näeb: jõudeolekuperioodid, puhangud, paralleelsus, vastuse suurus ja taasühendused.
Hoidke sertifikaadi valideerimine ja HTTPS mõlemal teel sisse lülitatud, sest nende eemaldamine mõõdab teistsugust turbekujundust, mitte kiiremat. Kui tunnel muudab marsruuti või lüüsi asukohta, teatage sellest erinevusest eraldi, selle asemel et omistada iga ajamuutus krüpteerimisele, sest tee, kadu ja järjekord võivad väikese päringu üle domineerida. Enne järelduse tegemist käivitage kumbki tee kaks korda sama marsruudi peal. Pange kirja kokku lepitud protokoll ja taimeri piirid mõlema jooksutusega.
Arvestage ühendusega, mis sulgub
Püsiv ei tähenda igavest. Server, puhverserver või võrgu muudatus võib jõudeolekuperioodil ühenduse sulgeda ja klient peab taastuma oma teegi toetatud käitumise kaudu. Sellel taastumisel on olekumasin: päring võis serveris lõpule jõuda või ebaõnnestuda enne, kui server selle luges, ja suletud sokkel ei ütle kutsujale, kumb juhtus. Mitte-idempotentne toiming selles asendis ei saa lihtsalt korduda, sest kordamine muudab tundmatu tulemuse duplikaatkirjeks. Siin käituvad soe tunnel ja soe ühendus sarnaselt, sest mõlemad võivad nurjuda hetkel, kui töö on pooleli.
Kasutage teenuse dokumenteeritud korduskatse või idempotentsuse mehhanismi, mitte tsüklit, mis sokli uuesti avab. Testige taastumist otseselt: sulgege jõudeolev ühendus ja jälgige, mida klient seejärel teeb. Sokli uuesti avamine ei muuda olekut muutva kutse kordamist turvaliseks.
Valige esmalt piir, seejärel häälestage
Valige võrgupiir juurdepääsu- ja usaldusnõuete järgi enne, kui midagi optimeerite. VPN kaitseb segmenti oma kaaslaste vahel, samal ajal kui rakenduse lõpp-punktid ja iga selge teksti segment väljaspool tunnelit loevad endiselt. Seejärel häälestage ühenduse elutsükkel selle piiri sees. Odavama tunneli järeldus tuleneb ainult uskumusest, et iga päring kordab käepigistust, ja just seda uskumust siin testitakse.
RFC 9112 püsivuse osa on viide sellele, mida uuestikasutus tegelikult lubab, sealhulgas tingimused, mis ühenduse lõpetavad. Lugege seda korra, enne kui usaldate mõõdikut, mis neid eirab.