गर्म HTTPS बनाम गर्म VPN: वही अनुरोध मार्ग तुलना करें
HTTPS हर API अनुरोध पर हैंडशेक नहीं करता, इसलिए गर्म कनेक्शन और गर्म टनल प्रतिद्वंद्वी नहीं हैं। चुनने से पहले वही अनुरोध पैटर्न तुलना करें।
आपने शायद पढ़ा होगा कि HTTPS हर API अनुरोध के लिए नया TCP कनेक्शन और नया TLS हैंडशेक खोलता है, इसलिए एक घंटे खुली रहने वाली टनल सस्ती लगती है। इसका पहला आधा हिस्सा आमतौर पर गलत है। समर्थित क्लाइंट कई अदल-बदल के लिए स्थापित कनेक्शन फिर से इस्तेमाल करता है, और हर कॉल पर नया क्लाइंट बनाने वाला मापन जीवनचक्र मापता है, सुरक्षा नहीं। इस पृष्ठ का बाकी हिस्सा बताता है कि इसके बजाय क्या मापना चाहिए।
दोबारा इस्तेमाल की असली शर्त
स्थायित्व HTTP मॉडल का हिस्सा है, कोई तरकीब नहीं: एक कनेक्शन कई अनुरोध-प्रतिक्रिया अदल-बदल ढोता है। कनेक्शन तब खत्म होता है जब दोनों में से कोई पक्ष उसे बंद करता है, जब सर्वर निष्क्रिय या अधिक भार वाला कनेक्शन हटा देता है, या जब कोई हेडर या प्रोटोकॉल नियम कहे कि कनेक्शन दोबारा इस्तेमाल नहीं किया जा सकता। HTTPS उस बातचीत को हर अदल-बदल के लिए नया हैंडशेक मांगे बिना TLS के भीतर रखता है। इसलिए दूसरा अनुरोध पहले अनुरोध का हैंडशेक नहीं दोहराता, जब तक बीच में किसी चीज़ ने कनेक्शन खत्म न किया हो।
दोबारा इस्तेमाल की एक शर्त भी है जिसे एप्लिकेशन आसानी से तोड़ते हैं। जो क्लाइंट कनेक्शन दोबारा इस्तेमाल करने की सोचता है उसे प्रतिक्रिया का पूरा शरीर पढ़ना होता है, और आधे रास्ते छोड़ी गई प्रतिक्रिया वह सामान्य तरीका है जिससे कनेक्शन पूल किसी को पता चले बिना गायब हो जाता है।
लाइब्रेरी का समर्थित क्लाइंट और कनेक्शन पूल का जीवनचक्र जाँचें, पूल चालू या बंद मान लेने के बजाय। सहमत HTTP संस्करण भी लिख लें, क्योंकि HTTP/2 और HTTP/3 कनेक्शन दोबारा इस्तेमाल को HTTP/1.1 से अलग ढंग से संभालते हैं। सहमत संस्करण को मापन का हिस्सा मानें, पादटिप्पणी नहीं।
तुलना जीवनचक्र क्यों मापती है
हर क्रिया के लिए नया क्लाइंट बनाना और उसकी एक घंटे से जुड़ी टनल से तुलना करना कनेक्शन स्थापना की तुलना स्थिर अवस्था से करता है। यह वैध मापन है, और यह HTTPS बनाम VPN नहीं है। एक ही क्लाइंट कॉन्फ़िगरेशन वाले दो रन एक से बेहतर व्यवहार बताते हैं, खासकर जब पहला रन किसी रिज़ॉल्वर या कनेक्शन कैश को गर्म करता है।
API क्रिया, सर्वर, खाता और डेटा स्थिर रखें, वरना तुलना एक से अधिक चर ढोती है। पहले से तय करें कि टाइमर कहाँ रखेंगे, क्योंकि स्थापना, TLS बातचीत, एप्लिकेशन निष्पादन और प्रतिक्रिया पहुँचाना कुल में अलग योगदान देते हैं। पहले अनुरोध का एक टाइमर स्थापना की पहचान बताता है और उस स्थिर ट्रैफ़िक के बारे में कुछ नहीं कहता जो आप वास्तव में चलाते हैं। टाइमर की सीमाएँ संख्याओं के पास लिखें।
ठंडी स्थापना को गर्म अनुरोधों से अलग करें
पहला अनुरोध बाद वाले अनुरोधों से अलग मापें। फिर जोड़ें जो सेवा वास्तव में देखती है: निष्क्रिय अवधि, विस्फोट, समकालिकता, प्रतिक्रिया का आकार और पुनः कनेक्शन।
दोनों मार्गों पर प्रमाणपत्र सत्यापन और HTTPS चालू रखें, क्योंकि उन्हें हटाना अलग सुरक्षा डिज़ाइन मापता है, तेज़ नहीं। अगर टनल मार्ग या गेटवे की जगह बदलती है, तो हर समय बदलाव को एन्क्रिप्शन पर मढ़ने के बजाय वह अंतर अलग बताएँ, क्योंकि मार्ग, हानि और कतार छोटे अनुरोध पर हावी हो सकते हैं। नतीजा निकालने से पहले हर मार्ग उसी रूट पर दो बार चलाएँ। सहमत प्रोटोकॉल और टाइमर की सीमाएँ दोनों रन के साथ लिखें।
बंद होने वाले कनेक्शन की योजना बनाएँ
स्थायी का अर्थ सदा नहीं। सर्वर, प्रॉक्सी या नेटवर्क बदलाव निष्क्रिय अवधि में कनेक्शन बंद कर सकता है, और क्लाइंट को अपनी लाइब्रेरी के समर्थित व्यवहार से बहाल होना होता है। उस बहाली में एक स्थिति मशीन है: अनुरोध सर्वर पर पूरा हो चुका हो सकता है, या सर्वर के उसे पढ़ने से पहले विफल हो सकता है, और बंद सॉकेट कॉल करने वाले को नहीं बताता कि क्या हुआ। उस स्थिति में गैर-आइडेम्पोटेंट क्रिया बस दोबारा नहीं चलाई जा सकती, क्योंकि दोहराव अज्ञात परिणाम को दोहरे लेख में बदल देता है। यहीं गर्म टनल और गर्म कनेक्शन एक जैसा व्यवहार करते हैं, क्योंकि काम चलने के क्षण दोनों विफल हो सकते हैं।
सॉकेट फिर से खोलने वाले लूप के बजाय सेवा की दस्तावेज़ी पुनःप्रयास या आइडेम्पोटेंसी विधि इस्तेमाल करें। बहाली स्पष्ट रूप से जाँचें: निष्क्रिय कनेक्शन बंद करें और देखें क्लाइंट आगे क्या करता है। सॉकेट फिर खोलना स्थिति बदलने वाली कॉल के दोहराव को सुरक्षित नहीं बनाता।
पहले सीमा चुनें, फिर समायोजित करें
कुछ भी अनुकूलित करने से पहले पहुँच और भरोसे की ज़रूरतों से नेटवर्क सीमा चुनें। VPN अपने साथियों के बीच का हिस्सा बचाता है, जबकि एप्लिकेशन के अंतिम बिंदु और टनल के बाहर कोई भी स्पष्ट पाठ वाला हिस्सा अब भी मायने रखता है। फिर उस सीमा के भीतर कनेक्शन का जीवनचक्र तय करें। सस्ती टनल का नतीजा केवल इस विश्वास से आता है कि हर अनुरोध हैंडशेक दोहराता है, और यहीं वही विश्वास परखा जा रहा है।
RFC 9112 का स्थायित्व वाला भाग इस बात का संदर्भ है कि दोबारा इस्तेमाल वास्तव में क्या वादा करता है, जिसमें कनेक्शन खत्म करने वाली शर्तें भी शामिल हैं। ऐसे मापन पर भरोसा करने से पहले इसे एक बार पढ़ें जो उन्हें नज़रअंदाज़ करता है।