हेडर-जीवित हेडर स्पष्टीकरण रखें


106

मुझे एक साइट बनाने के लिए कहा गया था, और सह-डेवलपर में से एक ने मुझसे कहा कि मुझे रखने के लिए हेडर को शामिल करना होगा।

वैसे मैंने इसके बारे में बहुत पढ़ा है और अभी भी मेरे पास सवाल हैं।

एमएसडीएन ->

जब ग्राहक किसी वेब पेज की सामग्री के लिए कई अनुरोध करता है, तो खुला कनेक्शन प्रदर्शन को बेहतर बनाता है, क्योंकि सर्वर प्रत्येक अनुरोध के लिए सामग्री को और अधिक तेज़ी से वापस कर सकता है। अन्यथा, सर्वर को हर अनुरोध के लिए एक नया कनेक्शन खोलना होगा

देखना

यहां छवि विवरण दर्ज करें

  • आईआईएस (एफ) भेजता है keep aliveहैडर ( या उपयोगकर्ता रखें जिंदा भेजता है ), यह है कि (क्या मतलब है E, C, Bएक कनेक्शन है जो सिर्फ अपने सत्र के लिए है सेव)?
  • यह जानकारी कहां रखी गई है ( "यह संबंध" रॉयई "से है )?
  • क्या इसका मतलब है कि कोई और उस कनेक्शन का उपयोग नहीं कर सकता है
  • यदि हां - तो क्या इसका मतलब है कि जीवित-शीर्षलेख रखें - ओवरलैप किए गए कनेक्शन उपयोगकर्ताओं की संख्या कम करें?
  • यदि हां, तो कनेक्शन कब तक मेरे लिए सहेजा जाता है? (दूसरे शब्दों में, अगर मैं जीवित रखता हूँ- "कब तक" रखूँ?)

रुचि रखने वालों के लिए ps:

इस नमूना पृष्ठ पर क्लिक करने से जीवित शीर्ष लेख वापस आ जाएगा


2
Pfff, मैंने इसे एक व्याख्यान में देखा है, लेकिन मुझे यकीन नहीं है। मुझे लगा कि जिंदा रखना केवल सर्वर और उपयोगकर्ता पर था। सब के बाद, बीच में सब कुछ भी पता नहीं होना चाहिए कि यह HTTP है, अकेले हेडर को देखो।
NOCTUA

MSDN से उद्धृत कथन ड्राइवल है। यह मुवक्किल है जिसे कोई नया कनेक्शन खोलना पड़ता है यदि कोई जीवित नहीं है।
लोर्न

और यदि आप एक साइट का निर्माण कर रहे हैं, न कि वेब सर्वर या क्लाइंट का, तो आपके लिए पहले से ही हेडलिव हैडर बना हुआ है।
लोर्न

जवाबों:


145

यह जानकारी कहां रखी गई है ("यह कनेक्शन कंप्यूटर Aऔर सर्वर के बीच है F")?

टीसीपी कनेक्शन को स्रोत आईपी और पोर्ट और गंतव्य आईपी और पोर्ट द्वारा मान्यता प्राप्त है। आपका ओएस, सभी मध्यवर्ती सत्र-जागरूक डिवाइस और सर्वर का ओएस इसके द्वारा कनेक्शन को पहचान लेगा।

HTTP अनुरोध-प्रतिक्रिया के साथ काम करता है: क्लाइंट सर्वर से जुड़ता है, एक अनुरोध करता है और एक प्रतिक्रिया प्राप्त करता है। रख-रखाव के बिना, HTTP सर्वर का कनेक्शन प्रत्येक प्रतिक्रिया के बाद बंद हो जाता है। HTTP रखने के साथ-साथ आप अंतर्निहित TCP कनेक्शन को तब तक खुला रखते हैं जब तक कि कुछ मानदंड पूरे नहीं हो जाते।

यह टीसीपी के अपेक्षाकृत धीमे कनेक्शन स्टार्टअप में से कुछ को खत्म करते हुए एकल टीसीपी कनेक्शन पर कई अनुरोध-प्रतिक्रिया जोड़े के लिए अनुमति देता है।

जब IIS (F) भेजे जाने वाले हेडर को जीवित रखता है (या उपयोगकर्ता रहता है-जीवित रखता है), तो क्या इसका मतलब यह है कि (E, C, B) कनेक्शन को सेव करता है

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

जो केवल मेरे सत्र के लिए है?

क्या इसका मतलब है कि कोई और उस कनेक्शन का उपयोग नहीं कर सकता है

यह टीसीपी कनेक्शन का इरादा है : यह एंड-टू-एंड कनेक्शन है जो केवल उन दो पक्षों के लिए है।

यदि हां - तो क्या इसका मतलब है कि जीवित-शीर्षलेख रखें - ओवरलैप किए गए कनेक्शन उपयोगकर्ताओं की संख्या कम करें?

"ओवरलैप किए गए कनेक्शन" को परिभाषित करें। कुछ फायदे और नुकसान के लिए HTTP लगातार कनेक्शन देखें , जैसे:

  • कम CPU और मेमोरी उपयोग (क्योंकि कम कनेक्शन एक साथ खुले हैं)।
  • अनुरोधों और प्रतिक्रियाओं के HTTP पाइपलाइनिंग को सक्षम करता है।
  • कम नेटवर्क की भीड़ (कम टीसीपी कनेक्शन)।
  • बाद के अनुरोधों में कम विलंबता (हैंडशेकिंग नहीं)।

यदि हां, तो कनेक्शन कब तक मेरे लिए सहेजा जाता है? (दूसरे शब्दों में, अगर मैं जीवित रखता हूँ- "कब तक" रखूँ?)

एक आम रख-रखाव प्रतिक्रिया इस तरह दिखती है:

Keep-Alive: timeout=15, max=100

देखें हाइपरटेक्स्ट ट्रांसफर प्रोटोकॉल (HTTP) Keep-Alive हैडर (उदाहरण के लिए एक मसौदा के लिए HTTP / 2 जहां रखें जिंदा हैडर दोनों अधिक से अधिक विस्तार से समझाया गया है 2616 और 2086 ):

  • एक होस्ट timeoutपैरामीटर के मान को उस समय तक सेट करता है जब होस्ट बंद होने से पहले एक निष्क्रिय कनेक्शन को खुले रहने की अनुमति देगा। यदि कोई डेटा किसी होस्ट द्वारा भेजा या प्राप्त नहीं किया जाता है तो एक कनेक्शन निष्क्रिय है।

  • maxपैरामीटर अनुरोध करता है कि एक ग्राहक कर देगा, या कि एक सर्वर लगातार कनेक्शन पर किए जाने के लिए अनुमति देगा की अधिकतम संख्या को इंगित करता है। एक बार अनुरोधों और प्रतिक्रियाओं की निर्दिष्ट संख्या भेजे जाने के बाद, पैरामीटर को शामिल करने वाला होस्ट कनेक्शन बंद कर सकता है।

हालांकि, सर्वर एक मनमाने समय या अनुरोधों की संख्या के बाद कनेक्शन को बंद करने के लिए स्वतंत्र है (जब तक यह वर्तमान अनुरोध पर प्रतिक्रिया देता है)। यह कैसे लागू किया जाता है यह आपके HTTP सर्वर पर निर्भर करता है।


"ओवरलैप्ड कनेक्शन" को परिभाषित करें -----> मेरा मतलब एक साथ है। (और मुझे लगता है कि एक साथ कनेक्शन की संख्या कम हो जाएगी क्योंकि आपने कहा था: "कनेक्शन एक्स जॉन कारण के लिए आरक्षित है क्योंकि यह जीवित हेडर का उपयोग करता है।" .... क्या मैं सही हूं?
रॉय नमिर

1
तो आप क्या कह रहे हैं कि यदि सर्वर एक समय में 100 कनेक्शन को संभाल सकता है, और उन सभी कनेक्शनों का उपयोग जीवित रखता है, तो 101'st कनेक्शन डंप हो जाएगा ???
रॉय नमिर

1
@ रोई नहीं, मुझे नहीं पता कि एक ब्राउज़र किसी होस्ट को कितने जीवित कनेक्शन देता है और मेरे कहने का मतलब यह नहीं है कि ब्राउज़र केवल एक ही खोल देगा। एक साथ किए गए अनुरोधों की मात्रा सीमित है और प्रति ब्राउज़र बदलती है । मेरा मतलब था कि यदि कोई ब्राउज़र कनेक्शन को ज़िंदा रखता है, तो यह कनेक्शन Nपर आग अनुरोधों के बजाय हो सकता है N(जैसा कि डिफ़ॉल्ट रूप से कनेक्शन हर प्रतिक्रिया के बाद बंद हो जाता है), उदाहरण के लिए आग Nअनुरोध N / Mया सिर्फ Mकनेक्शन, क्योंकि यह कई अनुरोधों पर आग लगा सकता है प्रत्येक खोला कनेक्शन, इसलिए कम उपयोग कर सकते हैं।
कोडकैस्टर

1
मुझे पता है कि (:-)) आपने अपनी टिप्पणी में कहा था: एक ग्राहक रखने के साथ-साथ कम से कम एक साथ संबंध बनाएगा, जब वह जीवित रहेगा, तो यह सीरियल में अनुरोधों को आग लगा देगा, न कि समानता । मुझे अभी समझ में नहीं आया कि यह किस प्रकार से रखने से संबंधित है।
रॉय नमिर

5
E, C, B सत्र नहीं बचाते हैं। वे राउटर हैं, उनके पास कोई सत्र तालिका नहीं है और उन्हें ज़रूरत नहीं है, क्योंकि एक ही टीसीपी क्लाइंट-टू-सर्वर सत्र से कई पैकेट अलग-अलग रास्तों का अनुसरण कर सकते हैं। राउटर की भूमिका सबसे अच्छा आईपी पथ का चयन करना है और तदनुसार पैकेट को अग्रेषित करना है, इसलिए यह ट्रांसपोर्ट लेयर (टीसीपी / यूडीपी) तक नहीं जाता है, और न ही यह एप्लिकेशन लेयर को जीवित-हेडर देखने के लिए जाता है। तो मूल रूप से क्लाइंट और सर्वर के बीच स्पष्ट रूप से जीवित रहते हैं, और स्पष्ट रूप से यह सत्र के बारे में जागरूक उपकरणों को ले जाने देता है-लेग फायर-उस स्पष्ट क्लाइंट-टू-सर्वर सत्र के लिए खोला गया
Amine Kadimi
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.