2012-05-07 9 views
49

के साथ HTTP पाइपलिंग और HTTP मल्टीप्लेक्सिंग के बीच अंतर Google और स्टैक ओवरफ़्लो के लिए धन्यवाद, मुझे लगता है कि मैं नियमित HTTP पाइपलाइनिंग और HTTP मल्टीप्लेक्सिंग (उदाहरण के लिए, एसपीडीवाई के साथ) के बीच अंतर को समझता हूं, इसलिए मैंने नीचे दिए गए आरेख को बीच दिखाने के लिए नीचे दिया पाइपलाइनिंग और मल्टीप्लेक्सिंग तीन नियमित HTTP अनुरोधों के आधार पर।एसपीडीवाई

enter image description here

मेरे दो प्रश्न हैं:

  1. छवि सही है?
  2. क्या यह सच है कि यदि पाइपलाइनिंग में head-of-line blocking problem नहीं होगा तो यह HTTP मल्टीप्लेक्सिंग जितना तेज होगा? या क्या मुझे एक अतिरिक्त अंतर याद आया?

उत्तर

47

यह गलत नहीं है, लेकिन यह एक महत्वपूर्ण पहलू है जो इसे छोड़ देता है। HTTP किसी अन्य अनुरोध को आगे बढ़ने से पहले संपूर्ण प्रतिक्रिया वितरित करने की आवश्यकता है। आप चित्र में जो दिखा रहे हैं वह इस अर्थ में सही है कि एसपीडीवाई के साथ हम आखिरकार "लाइन के सिर" की आवश्यकता को तोड़ सकते हैं और प्रतिक्रियाएं उपलब्ध होने पर वितरित कर सकते हैं। हालांकि, हमें पूरी तरह से पूरा करने के लिए किसी भी अनुरोध का इंतजार नहीं करना है।

दो अनुरोधों की कल्पना करें, दोनों केबी आकार में: प्रत्येक अनुरोध में एकाधिक पैकेट होंगे, उन्हें [r1p1, r1p2] और [r2p1, r2p2] पर कॉल करें। HTTP के लिए आवश्यक है कि पीएन सटीक क्रम में पहुंचें। दूसरी तरफ, एसपीडीवाई हमें निम्नलिखित की अनुमति देता है: [r2p1, r1p1, r1p2, r2p2]

यह भी उल्लेखनीय है कि एसपीडीवाई के साथ हम सर्वर को संकेत देने के लिए अनुरोध प्राथमिकताओं का उपयोग कर सकते हैं, जो अनुरोधों को प्राथमिकता लेनी चाहिए, भले ही यह बाद में तार पर आती है (आधा दर्जन अन्य महान विशेषताओं में)।

+0

@ मैट आपने * उत्तर * +1 किया, क्योंकि * प्रश्न * में एक शानदार आरेख था? या शायद आप केवल अपनी टिप्पणी गलत तरीके से संलग्न कर सकते हैं ... –

+0

यूप, गलत टिप्पणी संलग्न। – Matt

+1

दूसरे प्रश्न के बारे में क्या? > क्या यह सच है कि अगर पाइपलाइनिंग में सिर-ऑफ-लाइन अवरोधन समस्या नहीं होगी तो यह HTTP मल्टीप्लेक्सिंग जितनी तेज होगी? या क्या मुझे एक अतिरिक्त अंतर याद आया? – CMCDragonkai