Mae'n debyg eich bod wedi darllen bod HTTPS yn agor cysylltiad TCP newydd a handshake TLS newydd ar gyfer pob cais API, felly mae twnnel sy'n aros i fyny am awr yn edrych yn rhatach. Mae hanner cyntaf hynny fel arfer yn anghywir. Mae cleient a gefnogir yn ailddefnyddio cysylltiad sefydledig ar gyfer llawer o gyfnewidiadau, ac mae meincnod sy'n adeiladu cleient newydd ar gyfer pob galwad yn mesur cylch bywyd yn hytrach na diogelwch. Gweddill y dudalen hon yw'r hyn i'w fesur yn lle hynny.

Beth mae ailddefnyddio yn ei olygu mewn gwirionedd

Mae dyfalbarhad yn rhan o fodel HTTP yn hytrach na thric: mae un cysylltiad yn cario sawl cyfnewidiad cais ac ymateb. Mae'r cysylltiad yn gorffen pan fydd y naill ochr neu'r llall yn ei gau, pan fydd y gweinydd yn ymddeol cysylltiad segur neu orlwythog, neu pan fydd pennawd neu reol protocol yn dweud na ellir ailddefnyddio'r cysylltiad. Mae HTTPS yn haenu'r sgwrs honno y tu mewn i TLS heb fynnu handshake newydd ar gyfer pob cyfnewidiad. Felly nid yw ail gais yn ailadrodd handshake'r cais cyntaf oni bai bod rhywbeth wedi diweddu'r cysylltiad yn y cyfamser.

Mae gan ailddefnyddio un amod hefyd y mae cymwysiadau yn ei dorri'n hawdd. Rhaid i gleient sy'n bwriadu ailddefnyddio cysylltiad ddarllen corff cyflawn yr ymateb, a'r ymateb a adewir ar ei hanner yw'r ffordd arferol y mae cronfa gysylltiadau yn diflannu heb i neb sylwi.

Gwiriwch y cleient a gefnogir gan y llyfrgell a chylch bywyd y gronfa gysylltiadau yn lle tybio bod cronni ymlaen neu i ffwrdd. Cofnodwch y fersiwn HTTP a drafodwyd hefyd, oherwydd mae HTTP/2 a HTTP/3 yn trin ailddefnyddio cysylltiadau'n wahanol i HTTP/1.1. Triniwch y fersiwn a drafodwyd fel rhan o'r mesuriad, nid fel troednodyn.

Pam mae'r gymhariaeth yn mesur cylch bywyd

Mae creu cleient newydd ar gyfer pob gweithrediad a'i gymharu â thwnnel sydd wedi bod yn gysylltiedig am awr yn cymharu sefydlu cysylltiad â chyflwr cyson. Mae hwnnw'n feincnod dilys, ac nid yw'n HTTPS yn erbyn VPN. Mae dau rediad â'r un ffurfweddiad cleient yn disgrifio'r ymddygiad yn well nag un, yn enwedig pan fydd y rhediad cyntaf yn cynhesu datryswr neu storfa gysylltiadau.

Cadwch y gweithrediad API, y gweinydd, y cyfrif a'r data yn gyson, neu mae'r gymhariaeth yn cario mwy nag un newidyn. Penderfynwch ymlaen llaw ble rydych yn gosod yr amserydd, oherwydd mae sefydlu, trafod TLS, gweithredu cymhwysiad a chyflwyno ymateb yn cyfrannu'n wahanol at y cyfanswm. Mae un amserydd cais cyntaf yn nodweddu'r sefydlu ac yn dweud dim am y traffig cyson rydych yn ei redeg mewn gwirionedd. Ysgrifennwch ffiniau'r amserydd wrth ymyl y rhifau.

Gwahanwch sefydlu oer oddi wrth geisiadau cynnes

Mesurwch y cais cyntaf ar wahân i'r rhai sy'n dilyn. Yna ychwanegwch yr hyn y mae'r gwasanaeth yn ei weld mewn gwirionedd: cyfnodau segur, byrstio, cydamseredd, maint yr ymateb ac ailgysylltiadau.

Cadwch ddilysu tystysgrifau a HTTPS ymlaen ar y ddau lwybr, oherwydd mae eu dileu yn mesur dyluniad diogelwch gwahanol yn hytrach nag un cyflymach. Os yw'r twnnel yn newid y llwybr neu leoliad y porth, adroddwch y gwahaniaeth hwnnw ar wahân yn lle priodoli pob newid amser i amgryptio, gan y gall llwybr, colled a chiwio orchfygu cais bach. Rhedwch bob llwybr ddwywaith dros yr un llwybr cyn dod i gasgliad. Cofnodwch y protocol a drafodwyd a ffiniau'r amserydd gyda'r ddau rediad.

Cynlluniwch ar gyfer y cysylltiad sy'n cau

Nid yw parhaus yn golygu tragwyddol. Gall gweinydd, dirprwy neu newid rhwydwaith gau cysylltiad yn ystod cyfnod segur, a rhaid i'r cleient adfer trwy ymddygiad a gefnogir gan ei lyfrgell. Mae gan yr adferiad hwnnw beiriant cyflwr: efallai bod y cais wedi cwblhau ar y gweinydd, neu efallai ei fod wedi methu cyn i'r gweinydd ei ddarllen, ac nid yw soced caeedig yn dweud wrth y galwr pa un ddigwyddodd. Ni ellir ailchwarae gweithrediad nad yw'n idempotent yn y sefyllfa honno yn syml, oherwydd mae ailchwarae yn troi canlyniad anhysbys yn ysgrifeniad dyblyg. Dyma lle mae twnnel cynnes a chysylltiad cynnes yn ymddwyn yn debyg, gan y gall y ddau fethu ar yr eiliad y mae gwaith ar y gweill.

Defnyddiwch fecanwaith ailgynnig neu idempotentrwydd dogfennol y gwasanaeth yn lle dolen sy'n ailagor y soced. Profwch yr adferiad yn benodol: caewch gysylltiad segur a sylwch beth mae'r cleient yn ei wneud nesaf. Nid yw ailagor soced yn gwneud ailadrodd galwad sy'n newid cyflwr yn ddiogel.

Dewiswch y ffin yn gyntaf, yna addaswch

Dewiswch y ffin rwydwaith o'r gofynion mynediad ac ymddiriedaeth cyn optimeiddio unrhyw beth. Mae VPN yn amddiffyn y segment rhwng ei gymheiriaid, tra bod pwyntiau terfyn y cymhwysiad ac unrhyw segment testun clir y tu allan i'r twnnel yn dal i fod yn bwysig. Yna addaswch gylch bywyd y cysylltiad o fewn y ffin honno. Dim ond o'r gred bod pob cais yn ailadrodd yr handshake y mae'r casgliad twnnel rhatach yn dilyn, a'r gred honno yw'r peth sy'n cael ei brofi yma.

Mae adran dyfalbarhad RFC 9112 yn gyfeiriad ar gyfer yr hyn y mae ailddefnyddio yn ei addo mewn gwirionedd, gan gynnwys yr amodau sy'n diweddu cysylltiad. Darllenwch hi unwaith cyn ymddiried mewn meincnod sy'n eu hanwybyddu.

Erthyglau cysylltiedig