2011-01-12 6 views
9

कोई हमें निम्नलिखित मानकों के बीच व्यवहार में अंतर की व्याख्या कर सकते हैं?HTTP अनुरोध के लिए keep_alive और लगातार विकल्प के बीच क्या अंतर है? Zend_Http_Client कक्षा में</p> <p><b>keep_alive</b> पैरामीटर:

और

लगातार Zend_Http_Client_Adapter_Socket कक्षा में?

मैं समझने के लिए मैं HTTPS कनेक्शन खुला का एक समूह रखने के लिए क्या करने की जरूरत करना चाहते हैं (एसएसएल की बातचीत से बचने के लिए)।

धन्यवाद, गैस्टन

+0

ऐसा लगता है जैसे आप लगातार चाहते हैं। – Amber

उत्तर

0

KeepAlive मतलब यह है कि कनेक्शन, एक व्यक्ति अनुरोध के पाठ्यक्रम पर पुन: उपयोग किया जा सकता है, हालांकि यह अनुरोध के अंत में बंद कर दिया जाएगा। निरंतर मतलब है कि कनेक्शन व्यक्तिगत अनुरोध से परे जीवित रहेगा-उसी PHP प्रक्रिया पर बाद के अनुरोध द्वारा उपयोग किया जाएगा।

+0

यह सही नहीं है। Keep-Alive का अर्थ है कि आप एक ही कनेक्शन का उपयोग कर एक ही सर्वर (मानते हैं कि यह HTTP/1.1 का उपयोग करता है) के लिए कई अनुरोध कर सकता है। हालांकि, अगर आप तेजी से अनुरोध नहीं करते हैं, तो कनेक्शन सर्वर द्वारा बंद कर दिया जाएगा। आपके इनपुट के लिए – Brad

1

यदि आप निरंतर कनेक्शन का उपयोग करते हैं तो आपको जीवित रहने के साथ-साथ जीवित रहने का उपयोग करना चाहिए, क्योंकि आपके पर्सेंट को नौकरी अनुकरण करने के लिए बहुत सारे काम करना होगा।

संपादित करें:

KeepAlive सेटिंग्स एक quite- कम समय की स्थापना, सर्वर द्वारा निर्धारित के बारे में बातचीत (इसे खाने के लिए समय था)। Keep-Alive अनुरोधों के लिए डिफ़ॉल्ट संभाल 15s द्वारा अपाचे, लेकिन वर्तमान अनुकूलित सेटिंग 5s है। यह आमतौर पर HTTP क्लाइंट को उसी HTTP कनेक्शन में किसी पृष्ठ से जुड़े जेएस और सीएसएस डाउनलोड करने में मदद करने के लिए किया जाता है। यदि आप सर्वर सेटिंग्स को एडजस्ट कर सकते हैं तो आप सबसे लंबे समय तक रखें-जीवित प्रश्नों का प्रयास कर सकते हैं (लेकिन सावधान रहें, इससे गंभीरता से आपके सर्वर द्वारा ग्राहक की संख्या सीमित हो जाएगी)।

लगातार कनेक्शन मोड लंबे समय तक लगातार कनेक्शन का अनुकरण करने के लिए किया जाता है, स्क्रिप्ट खोले जाने पर सॉकेट बंद नहीं होता है। आपको ऐसी सेटिंग से बहुत सावधान रहना चाहिए। क्या आप सीएलआई मोड में हैं? FCGI ?. यदि आप किसी Apache प्रक्रिया में चला रहे हैं मैं वास्तव में यकीन है कि आप (एक और अपाचे प्रक्रिया द्वारा हैंडल किया जा सकता है होगा) इस स्क्रिप्ट पर अगले अनुरोध पर एक ही कनेक्शन मिल जाएगा नहीं कर रहा हूँ, तो यह और भी खराब करता है, तो अपने कोड पर चल रहा है है एक बड़ी तैनाती में कई अपाचे सर्वर। और यह क्लाइंट (PHP) पक्ष के लिए है, लेकिन यह लक्षित सर्वर के लिए भी एक बड़ा दर्द हो सकता है।

को पुनः संपादित करें: (के रूप में एसएसएल के बारे में कुछ कहा जाना चाहिए)

क्या आप वाकई एसएसएल बातचीत समय अनुकूलित करना चाहते हैं? एसएसएल कम से कम सर्वर पक्ष पर कैश का उपयोग करता है, ताकि पहले अनुरोध को अस्वीकार कर दिया जा सके। एसएसएल सत्र के क्लाइंट साइड संचय शायद पीएचपी stream_socket_client समारोह (जो Zend वर्ग द्वारा प्रयोग किया जाता है द्वारा किया जाता है। आप अपने खुद के (से एक नया वर्ग का परीक्षण कर सकता है न सिर्फ इंटरफेस) को लागू करने और कर्ल का उपयोग करके देखें, के रूप में करने की जरूरत है कर्ल डिफ़ॉल्ट रूप से एसएसएल सत्र कैशिंग का उपयोग करें।

+0

धन्यवाद –

0

एफवाईआई, जबकि रहते हुए जीवित HTTP कनेक्शन का पुन: उपयोग करना है, एडाप्टर क्लास (कम से कम हाल ही में 1.10) इस पर सही तरीके से संभाल नहीं लेता है और बिना किसी नए कनेक्शन को खोलता है झंडा।

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