İsti HTTPS və isti VPN: eyni sorğu yolunu müqayisə edin
HTTPS hər API sorğusunda əl sıxma etmir, ona görə də isti bağlantı və isti tunel rəqib deyil. Seçim etməzdən əvvəl eyni sorğu modelini müqayisə edin.
Yəqin ki, HTTPS-in hər API sorğusu üçün yeni TCP bağlantısı və yeni TLS əl sıxması açdığını oxumusunuz, buna görə bir saat açıq qalan tunel daha ucuz görünür. Bunun birinci yarısı adətən yanlışdır. Dəstəklənən klient çoxsaylı mübadilə üçün qurulmuş bağlantıdan təkrar istifadə edir və hər çağırış üçün yeni klient quran ölçmə qorunma deyil, həyat dövrünü ölçür. Bu səhifənin qalan hissəsi əvəzində nəyi ölçmək lazım olduğundan bəhs edir.
Təkrar istifadə əslində nə tələb edir
Davamlılıq hiylə deyil, HTTP modelinin hissəsidir: bir bağlantı bir neçə sorğu-cavab mübadiləsini daşıyır. Bağlantı tərəflərdən biri onu bağladıqda, server boş və ya həddindən artıq yüklənmiş bağlantını dayandırdıqda və ya başlıq və ya protokol qaydası bağlantının təkrar istifadə edilə bilməyəcəyini bildirdikdə bitir. HTTPS bu söhbəti hər mübadilə üçün yeni əl sıxması tələb etmədən TLS-in içində qatlayır. Beləliklə, ikinci sorğu, arada nəsə bağlantını bitirməyibsə, birinci sorğunun əl sıxmasını təkrar etmir.
Təkrar istifadənin tətbiqlərin asanlıqla poza bildiyi bir şərti də var. Bağlantıdan təkrar istifadə etməyi planlaşdıran klient cavabın tam gövdəsini oxumalıdır və yarıda buraxılmış cavab hovuzun heç kim fərqinə varmadan yox olmasının adi yoludur.
Kitabxananın dəstəklədiyi klienti və bağlantı hovuzunun həyat dövrünü yoxlayın, hovuzun açıq və ya bağlı olduğunu fərz etməyin. Razılaşdırılmış HTTP versiyasını da qeyd edin, çünki HTTP/2 və HTTP/3 bağlantı təkrar istifadəsini HTTP/1.1-dən fərqli idarə edir. Razılaşdırılmış versiyanı qeyd deyil, ölçmənin bir hissəsi kimi qəbul edin.
Müqayisə niyə həyat dövrünü ölçür
Hər əməliyyat üçün təzə klient yaratmaq və onu bir saatdır bağlı olan tunellə müqayisə etmək bağlantı qurulmasını sabit vəziyyətlə müqayisə edir. Bu qanuni bir ölçmədir və bu, HTTPS-in VPN ilə müqayisəsi deyil. Eyni klient konfiqurasiyası ilə iki qaçış davranışı birindən daha yaxşı təsvir edir, xüsusən birinci qaçış həlledici və ya bağlantı keşini isitdikdə.
API əməliyyatını, serveri, hesabı və məlumatları sabit saxlayın, əks halda müqayisə birdən çox dəyişən daşıyır. Taymeri hara qoyacağınızı əvvəlcədən qərar verin, çünki quraşdırma, TLS danışıqları, tətbiqin icrası və cavabın çatdırılması cəmə fərqli töhfə verir. Tək bir ilk sorğu taymeri quraşdırmanı xarakterizə edir və həqiqətən apardığınız sabit trafik haqqında heç nə demir. Taymer sərhədlərini rəqəmlərin yanında yazın.
Soyuq quraşdırmanı isti sorğulardan ayırın
İlk sorğunu ondan sonrakı sorğulardan ayrıca ölçün. Sonra xidmətin həqiqətən gördüyünü əlavə edin: boş dövrlər, partlamalar, eyni vaxtlılıq, cavabın ölçüsü və yenidən bağlanmalar.
Sertifikat yoxlamasını və HTTPS-i hər iki yolda aktiv saxlayın, çünki onları çıxarmaq daha sürətli deyil, fərqli təhlükəsizlik dizaynı ölçür. Tunel marşrutu və ya şlüzün yerini dəyişirsə, hər vaxt dəyişikliyini şifrələməyə aid etmək əvəzinə bu fərqi ayrıca bildirin, çünki yol, itki və növbə kiçik sorğuda üstünlük təşkil edə bilər. Nəticə çıxarmazdan əvvəl hər yolu eyni marşrut üzərində iki dəfə işə salın. Razılaşdırılmış protokolu və taymer sərhədlərini hər iki qaçışla birlikdə qeyd edin.
Bağlanan bağlantı üçün plan qurun
Davamlı, daimi demək deyil. Server, proksi və ya şəbəkə dəyişikliyi boş dövrdə bağlantını bağlaya bilər və klient kitabxanasının dəstəklədiyi davranışla bərpa etməlidir. Bu bərpanın vəziyyət maşını var: sorğu serverdə tamamlanmış ola bilər və ya server onu oxumazdan əvvəl uğursuz olmuş ola bilər və bağlanmış soket çağırana hansının olduğunu demir. Bu vəziyyətdə qeyri-idempotent əməliyyat sadəcə təkrar oynadıla bilməz, çünki təkrar naməlum nəticəni dublikat yazıya çevirir. İsti tunel və isti bağlantı burada eyni davranır, çünki hər ikisi iş gedərkən uğursuz ola bilər.
Socket-i yenidən açan dövrə əvəzinə xidmətin sənədləşdirilmiş təkrar cəhd və ya idempotentlik mexanizmindən istifadə edin. Bərpanı açıq şəkildə sınayın: boş bağlantını bağlayın və klientin sonra nə etdiyinə baxın. Socket-i yenidən açmaq vəziyyəti dəyişən çağırışın təkrarını təhlükəsiz etmir.
Əvvəlcə sərhədi seçin, sonra tənzimləyin
Şəbəkə sərhədini hər hansı optimallaşdırmadan əvvəl giriş və etimad tələblərinə görə seçin. VPN öz həmyaşıdları arasındakı seqmenti qoruyur, tətbiqin son nöqtələri və tuneldən kənardakı hər hansı açıq mətn seqmenti yenə də vacibdir. Sonra bu sərhəd daxilində bağlantının həyat dövrünü tənzimləyin. Tunelin daha ucuz olması nəticəsi yalnız hər sorğunun əl sıxmasını təkrarladığına dair inamdan irəli gəlir və burada sınanan da məhz həmin inamdır.
RFC 9112-nin davamlılıq bölməsi təkrar istifadənin həqiqətən nə vəd etdiyi, o cümlədən bağlantını bitirən şərtlər üçün arayışdır. Onlara məhəl qoymayan ölçməyə güvənməzdən əvvəl onu bir dəfə oxuyun.