2015-12-27 8 views
13

क्या ऐसा इसलिए है क्योंकि इसे अनुरोध के क्रम में क्लाइंट को किए जाने वाले प्रतिक्रियाओं की आवश्यकता होती है जो HTTP 1.1 में लाइन अवरोधन समस्या के सिर का कारण बनती है?HTTP/1.1 पाइपलाइनिंग और HTTP/2 मल्टीप्लेक्सिंग के बीच क्या अंतर है?

यदि प्रत्येक अनुरोध बिल्कुल बराबर समय लेता है, तो लाइन अवरोधन और HTTP 1.1 पाइपलाइनिंग का सिर नहीं होगा और HTTP/2 मल्टीप्लेक्सिंग के समान प्रदर्शन करेगा?

उत्तर

14

HTTP/1.1 पाइपलाइनिंग अभी भी अनुरोध की आवश्यकता है वापस करने (मान लीजिए कि HTTP/2 अनुरोधों में कोई अनुरोध प्राथमिकता है और HTTP के अन्य परिवर्तन/2 तरह के हैडर संपीड़न, द्विआधारी, आदि के रूप में उपेक्षा करते हैं) अनुरोध में, अनुरोध में।

HTTP/2 अनुरोध प्रतिक्रियाओं को टुकड़ों में विभाजित करने की अनुमति देता है और एक अवरुद्ध फैशन में वापस लौटाया जाता है ताकि लाइन अवरोधन के सिर से परहेज किया जा सके।

अतिरिक्त HTTP/1.1 पाइपलाइनिंग वास्तव में कभी नहीं ली गई और ब्राउज़र और सर्वर समर्थन सीमित है (देखें: https://en.m.wikipedia.org/wiki/HTTP_pipelining)।

लेकिन हां, सिद्धांत रूप में, वे समान हैं और इसलिए समान प्रदर्शन लाभ देते हैं। HTTP/2 यह एक बेहतर, अधिक पूर्ण रूप से विशेष रुप से प्रदर्शित, इसका अधिक समर्थित संस्करण है - साथ ही आपके द्वारा नोट किए गए अन्य लाभों के साथ।

+0

सभी तथ्यों को समझाता है। धन्यवाद :) – prasun

+0

और मैं जोड़ना चाहता हूं कि HTTP पाइपलाइनिंग अधिकांश सर्वरों द्वारा समर्थित नहीं है क्योंकि इसे कार्यान्वित करना मुश्किल है और कुछ जोखिम भरा सुरक्षा समस्याएं हैं। उदाहरण के लिए, http smuggling अनुरोध के सामग्री-लंबाई शीर्षलेख के साथ छेड़छाड़ करके और एक ही अनुरोध में एकाधिक अनुरोध डालने और प्रॉक्सी सर्वर को किसी अन्य उपयोगकर्ता की प्रतिक्रिया वापस करने के द्वारा गलत तरीके से व्यवहार करने के द्वारा किया जा सकता है (क्योंकि अनुरोध आदेश बनाए रखा जाएगा और आप केवल एक ही अनुरोध में 2 अनुरोध डालते हैं)। इस हमले के लिए अच्छा समय की आवश्यकता है लेकिन पाठ्यक्रम के लिए असंभव नहीं है .. वैसे भी :) – sotn

24

HTTP/1.1 पाइपलाइनिंग के बिना: टीसीपी कनेक्शन पर प्रत्येक HTTP अनुरोध को अगले अनुरोध से पहले जवाब दिया जाना चाहिए।

पाइपलाइनिंग के साथ HTTP/1.1: टीसीपी कनेक्शन पर प्रत्येक HTTP अनुरोध वापस लौटने के पिछले अनुरोध की प्रतिक्रिया के बिना तुरंत किया जा सकता है। प्रतिक्रिया एक ही क्रम में वापस आ जाएगी।

HTTP/2 मल्टीप्लेक्सिंग: टीसीपी कनेक्शन पर प्रत्येक HTTP अनुरोध वापस आने के लिए पिछली प्रतिक्रिया के इंतजार किए बिना तत्काल बनाया जा सकता है। प्रतिक्रिया किसी भी क्रम में वापस आ सकती है।

+2

यह बहुत उपयोगी है जब आप HTTP v2 के बारे में पढ़ते हैं और मल्टीप्लेक्सिंग और पाइपलाइनिंग के बीच अंतर को समझने की कोशिश करते हैं। धन्यवाद दोस्त! – Combine

+0

बहुत बढ़िया, खुशी है कि यह आपकी मदद की! इससे मुझे भी मदद मिली! –

संबंधित मुद्दे