Heitt HTTPS gegn heitu VPN: berið saman sömu beiðnileið
HTTPS framkvæmir ekki handaband við hverja API-beiðni, svo heit tenging og heitt göng eru ekki keppinautar. Berið saman sama beiðnamynstur áður en þið veljið.
Þið hafið líklega lesið að HTTPS opni nýja TCP-tengingu og nýtt TLS-handaband fyrir hverja API-beiðni, svo göng sem standa í klukkustund virðast ódýrari. Fyrri helmingur þess er yfirleitt rangur. Studdum biðlari endurnýtir tengingu sem þegar er komin á fót fyrir margar samskiptalotur, og mæling sem byggir nýjan biðlara við hvert kall mælir lífsferil en ekki vernd. Afgangur þessarar síðu fjallar um hvað eigi að mæla í staðinn.
Hvað endurnýting krefst í raun
Varanleiki er hluti af HTTP-líkaninu en ekki bragð: ein tenging ber margar beiðni-og-svar lotur. Tengingunni lýkur þegar annar aðilinn lokar henni, þegar þjónninn leggur niður aðgerðalausa eða ofhlaðna tengingu, eða þegar haus eða regla samskiptareglunnar segir að ekki megi endurnýta tenginguna. HTTPS leggur það samtal inn í TLS án þess að krefjast nýs handabands fyrir hverja lotu. Þannig endurtekur önnur beiðni ekki handaband fyrstu beiðninnar nema eitthvað hafi lokið tengingunni í millitíðinni.
Endurnýting hefur líka eitt skilyrði sem forrit brjóta auðveldlega. Biðlari sem ætlar að endurnýta tengingu verður að lesa allan svarslíkamann, og svar sem er yfirgefið á miðri leið er venjulega leiðin sem tengingasafn hverfur án þess að nokkur taki eftir því.
Athugið studdan biðlara safnsins og lífsferil tengingasafnsins í stað þess að gera ráð fyrir að safnanir séu kveiktar eða slökktar. Skráið einnig HTTP-útgáfuna sem samið var um, því HTTP/2 og HTTP/3 meðhöndla endurnýtingu tenginga öðruvísi en HTTP/1.1. Lítið á samþykktu útgáfuna sem hluta mælingarinnar en ekki sem neðanmálsgrein.
Hvers vegna samanburðurinn mælir lífsferil
Að búa til nýjan biðlara fyrir hverja aðgerð og bera hann saman við göng sem hafa verið tengd í klukkustund ber saman uppsetningu tengingar og stöðugt ástand. Það er lögmæt mæling, og það er ekki HTTPS gegn VPN. Tvær keyrslur með sömu biðlarauppsetningu lýsa hegðuninni betur en ein, sérstaklega þegar fyrsta keyrslan hitar upp leysi eða tengingarskyndiminni.
Haldið API-aðgerðinni, þjóninum, reikningnum og gögnunum stöðugum, annars ber samanburðurinn fleiri en eitt breytistærð. Ákveðið fyrirfram hvar þið setjið tímatökuna, því uppsetning, TLS-samningaviðræður, keyrsla forrits og afhending svars leggja misjafnt til heildarinnar. Ein tímataka fyrir fyrstu beiðni lýsir uppsetningunni og segir ekkert um stöðuga umferðina sem þið keyrið í raun. Skráið mörk tímatökunnar við hlið talnanna.
Aðskiljið kalla uppsetningu frá heitum beiðnum
Mælið fyrstu beiðnina aðskilda frá þeim sem á eftir koma. Bætið síðan við því sem þjónustan sér í raun: aðgerðalaus tímabil, sprengingar, samtímiskeyrslu, stærð svars og endurtengingar.
Haldið vottorðasannprófun og HTTPS virkum á báðum leiðum, því að fjarlægja þau mælir aðra öryggishönnun en hraðari. Ef göngin breyta leiðinni eða staðsetningu gáttarinnar, tilkynnið þann mun sérstaklega í stað þess að rekja hverja tímaibreytingu til dulkóðunar, því leið, tap og biðröð geta ráðið yfir lítilli beiðni. Keyrið hverja leið tvisvar á sömu leið áður en þið dragið ályktun. Skráið samþykkta samskiptareglu og mörk tímatökunnar með báðum keyrslum.
Skipuleggið fyrir tenginguna sem lokast
Varanlegt þýðir ekki að eilífu. Þjónn, milliþjónn eða nettengingarbreyting getur lokað tengingu á aðgerðalausu tímabili, og biðlarinn verður að jafna sig með studda hegðun safnsins síns. Sú endurheimt hefur stöðuvél: beiðnin kann að hafa klárast á þjóninum eða mistekist áður en þjónninn las hana, og lokaður sökkull segir kallaranum ekki hvor gerðist. Aðgerð sem er ekki idempotent á þeim stað er ekki einfaldlega hægt að spila aftur, því endurspilun breytir óþekktri niðurstöðu í tvöfaldri skrifun. Hér hegða heit göng og heit tenging sér eins, því bæði geta mistekist á þeirri stundu sem vinna er í gangi.
Notið skjalfesta endurreyndar- eða idempotenskerfi þjónustunnar í stað lykkju sem opnar sökkulinn aftur. Prófið endurheimtina beint: lokaðu aðgerðalausri tengingu og fylgist með hvað biðlarinn gerir næst. Að opna sökkul aftur gerir ekki öruggt að endurtaka kall sem breytir stöðu.
Veljið mörkin fyrst, stillið svo
Veljið netmörkin út frá aðgangs- og traustkröfum áður en þið hagræðið nokkru. VPN verndar sneiðina milli jafningja sinna, en endapunktar forritsins og hver ódulkóðuð sneið utan gangsins skipta enn máli. Stillið síðan lífsferil tengingarinnar innan þeirra marka. Ályktunin um ódýrari göng leiðir aðeins af þeirri trú að hver beiðni endurtaki handabandið, og það er einmitt sú trú sem er prófuð hér.
Kaflinn um varanleika í RFC 9112 er tilvísunin fyrir það sem endurnýting lofar í raun, að meðtöldum skilyrðunum sem ljúka tengingu. Lesið hann einu sinni áður en þið treystið mælingu sem hunsar þau.