यह समझना महत्वपूर्ण है कि HTTP अनुरोध के ओवरहेड का इतना प्रभाव क्यों है।
अपने सबसे सरल रूप में, एक HTTP अनुरोध में सॉकेट खोलने, खुले सॉकेट पर अनुरोध भेजने और प्रतिक्रिया पढ़ने के होते हैं।
सॉकेट खोलने के लिए, क्लाइंट का टीसीपी/आईपी स्टैक सर्वर पर एक टीसीपी एसवाईएन पैकेट भेजता है। सर्वर एक एसईएन-एसीके के साथ प्रतिक्रिया करता है, और ग्राहक एसीके के साथ इसका जवाब देता है।
तो, इससे पहले कि आप एप्लिकेशन डेटा का एक बाइट भेज दें, आपको कम से कम सर्वर पर पूरे डेढ़ दौर की यात्रा का इंतजार करना होगा।
फिर क्लाइंट को अनुरोध भेजने की आवश्यकता है, सर्वर को अनुरोध को पार्स करने के लिए प्रतीक्षा करें, अनुरोधित डेटा ढूंढें, इसे वापस भेजें - यह एक और राउंड ट्रिप है और कुछ सर्वर साइड ओवरहेड (उम्मीद है कि एक छोटा ओवरहेड, हालांकि मेरे पास है कुछ धीमी सर्वरों को देखा) साथ ही वास्तविक डेटा संचारित करने का समय, और यह सबसे अच्छा मामला है, कोई नेटवर्क भीड़ नहीं मानता जिसके परिणामस्वरूप पैकेट गिराए जा सकते हैं और पुनः प्रेषित किया जा सकता है।
हर मौका आपको इससे बचने के लिए, आपको चाहिए।
आधुनिक ब्राउज़र शामिल कुछ ओवरहेड को कम करने के प्रयास में समानांतर में एकाधिक अनुरोध जारी करेंगे। HTTP अनुरोध सैद्धांतिक रूप से एक ही सॉकेट पर किए जा सकते हैं, जिससे चीजों को थोड़ा बेहतर बना दिया जा सकता है। लेकिन सामान्य रूप से, नेटवर्क दौर यात्रा प्रदर्शन के लिए खराब होती है, और इससे बचा जाना चाहिए।
स्रोत
2009-03-25 20:43:18
मैंने कुछ साल पहले कुछ संख्याएं की थी - एक 43 बाइट 1x1 gif के लिए, HTTP ओवरहेड (जिसमें टी टीसीपी पैकेट ओवरहेड शामिल नहीं था) 240 बाइट से अधिक था। –
आप जोड़ सकते हैं, कि छवि के आधार पर, संपीड़न अधिक कुशल हो सकता है। –
इसके अलावा, बड़ी फ़ाइलों को स्थानांतरित करते समय लेनदेन करते समय टीसीपी/आईपी अधिक कुशल होता है। – David