Сіз HTTPS әр API сұрауы үшін жаңа TCP байланысын және жаңа TLS қол алысуын ашады, сондықтан бір сағат ашық тұрған туннель арзанырақ көрінеді деп оқыған боларсыз. Мұның бірінші жартысы әдетте жалған. Қолдау көрсетілген клиент көптеген алмасулар үшін орнатылған байланысты қайта пайдаланады, ал әр шақыруда жаңа клиент құратын өлшеу қорғанысты емес, өмірлік циклді өлшейді. Бұл беттің қалған бөлігі оның орнына нені өлшеу керегін айтады.

Қайта пайдалану шын мәнінде нені талап етеді

Тұрақтылық HTTP моделінің бөлігі, ал айла емес: бір байланыс бірнеше сұрау мен жауап алмасуын тасымалдайды. Байланыс бір жақ оны жапқанда, сервер белсенді емес немесе шамадан тыс жүктелген байланысты алып тастағанда, немесе тақырыпша немесе протокол ережесі байланысты қайта пайдалануға болмайтынын айтқанда аяқталады. HTTPS бұл әңгімені әр алмасу үшін жаңа қол алысуды талап етпей-ақ TLS ішіне орналастырады. Сондықтан екінші сұрау, арада бірдеңе байланысты тоқтатпаса, бірінші сұраудың қол алысуын қайталамайды.

Қайта пайдаланудың қосымшалар оңай бұзатын бір шарты бар. Байланысты қайта пайдалануды жоспарлаған клиент жауаптың толық денесін оқуы керек, ал жарты жолда қалдырылған жауап — байланыстар пулының ешкім байқамай жоғалып кетуінің әдеттегі жолы.

Кітапхананың қолдайтын клиентін және байланыстар пулының өмірлік циклін тексеріңіз, пул қосулы немесе өшірулі деп болжамаңыз. Келісілген HTTP нұсқасын да жазып алыңыз, өйткені HTTP/2 мен HTTP/3 байланыстарды қайта пайдалануды HTTP/1.1-ден өзгеше өңдейді. Келісілген нұсқаны өлшеудің бөлігі ретінде қарастырыңыз, төменгі ескертпе ретінде емес.

Неге салыстыру өмірлік циклді өлшейді

Әр операция үшін жаңа клиент жасау және оны бір сағат бойы қосылған туннельмен салыстыру байланыс орнатуды тұрақты күймен салыстырады. Бұл заңды өлшеу және бұл HTTPS-тің VPN-ге қарсы салыстыруы емес. Бірдей клиент конфигурациясымен екі жүгірту бір жүгіртуге қарағанда мінез-құлықты жақсы сипаттайды, әсіресе бірінші жүгірту шешушіні немесе байланыс кэшін қыздырғанда.

API операциясын, серверді, тіркелгіні және деректерді тұрақты ұстаңыз, әйтпесе салыстыру бір айнымалыдан көбін тасиды. Таймерді қайда қоятыныңызды алдын ала шешіңіз, өйткені орнату, TLS келіссөздері, қосымшаның орындалуы және жауапты жеткізу жалпы сомаға әрқалай үлес қосады. Бірінші сұраудың бір таймері орнатуды сипаттайды және сіз шын мәнінде жүргізетін тұрақты трафик туралы ештеңе айтпайды. Таймер шегін сандардың қасына жазыңыз.

Суық орнатуды жылы сұраулардан бөліңіз

Бірінші сұрауды одан кейінгілерден бөлек өлшеңіз. Содан кейін қызметтің шын мәнінде көретінін қосыңыз: белсенді емес кезеңдер, жарылыстар, бір уақыттылық, жауап өлшемі және қайта қосылулар.

Сертификатты тексеру мен HTTPS-ті екі жолда да қосулы қалдырыңыз, өйткені оларды алып тастау жылдамырақ емес, басқа қауіпсіздік дизайнын өлшейді. Егер туннель маршрутты немесе шлюз орнын өзгертсе, әр уақыт өзгерісін шифрлауға телудің орнына бұл айырмашылықты бөлек хабарлаңыз, өйткені жол, жоғалту және кезек шағын сұрауға үстемдік етуі мүмкін. Қорытынды жасамас бұрын әр жолды сол маршрут бойынша екі рет жүгіртіңіз. Келісілген протоколды және таймер шегін екі жүгіртумен бірге жазыңыз.

Жабылатын байланысқа дайындалыңыз

Тұрақты мәңгілік дегенді білдірмейді. Сервер, прокси немесе желі өзгерісі белсенді емес кезеңде байланысты жабуы мүмкін, ал клиент кітапханасы қолдайтын мінез-құлық арқылы қалпына келуі керек. Бұл қалпына келудің күй машинасы бар: сұрау серверде аяқталған болуы мүмкін немесе сервер оны оқымай тұрып сәтсіз аяқталған болуы мүмкін, ал жабық сокет шақырушыға қайсысы болғанын айтпайды. Бұл жағдайда идемпотентті емес операцияны жай ғана қайта ойнатуға болмайды, өйткені қайталау белгісіз нәтижені қосарланған жазбаға айналдырады. Мұнда жылы туннель мен жылы байланыс бірдей әрекет етеді, өйткені екеуі де жұмыс жүріп жатқан сәтте сәтсіздікке ұшырауы мүмкін.

Сокетті қайта ашатын циклдың орнына қызметтің құжатталған қайта әрекет немесе идемпотенттік механизмін пайдаланыңыз. Қалпына келуді анық тексеріңіз: белсенді емес байланысты жабыңыз және клиенттің одан кейін не істейтінін бақылаңыз. Сокетті қайта ашу күйді өзгертетін шақыруды қайталауды қауіпсіз етпейді.

Алдымен шекараны таңдаңыз, содан кейін реттеңіз

Желі шегін кез келген нәрсені оңтайландырмас бұрын қатынас және сенім талаптарынан таңдаңыз. VPN өз тараптары арасындағы сегментті қорғайды, ал қосымшаның соңғы нүктелері және туннельден тыс кез келген ашық мәтін сегменті әлі де маңызды. Содан кейін байланыстың өмірлік циклін сол шек ішінде реттеңіз. Арзанырақ туннель туралы қорытынды тек әр сұрау қол алысуды қайталайды деген сенімнен туындайды, және дәл осы сенім мұнда тексеріледі.

RFC 9112-нің тұрақтылық бөлімі қайта пайдалану шын мәнінде нені уәде ететініне, оның ішінде байланысты аяқтайтын шарттарға сілтеме болып табылады. Оларды елемейтін өлшеуге сенбес бұрын оны бір рет оқыңыз.

Қатысты мақалалар