पायथन - कनेक्शन पुन: उपयोग
जब कोई क्लाइंट किसी सर्वर के लिए वैध अनुरोध करता है, तो भेजने और प्राप्त करने की प्रक्रिया को पूरा करने के लिए उनके बीच एक अस्थायी कनेक्शन स्थापित किया जाता है। लेकिन ऐसे परिदृश्य हैं जहां कनेक्शन को जीवित रखने की आवश्यकता है क्योंकि संचार करने वाले कार्यक्रमों के बीच स्वचालित अनुरोधों और प्रतिक्रियाओं की आवश्यकता होती है। उदाहरण के लिए एक इंटरैक्टिव वेबपेज लें। वेबपेज लोड होने के बाद फॉर्म डेटा जमा करने या सीएसएस और जावास्क्रिप्ट घटकों को डाउनलोड करने की आवश्यकता है। कनेक्शन को तेज प्रदर्शन और क्लाइंट और सर्वर के बीच अटूट संचार के लिए जीवित रखा जाना चाहिए।
अजगर प्रदान करता है urllib3मॉड्यूल जिसमें क्लाइंट और सर्वर के बीच कनेक्शन पुन: उपयोग की देखभाल करने के तरीके थे। नीचे दिए गए उदाहरण में हम एक कनेक्शन बनाते हैं और GET अनुरोध के साथ विभिन्न मापदंडों को पारित करके कई अनुरोध करते हैं। हमें कई प्रतिक्रियाएं मिलती हैं लेकिन हम उस कनेक्शन की संख्या भी गिनते हैं जो प्रक्रिया में उपयोग किया गया है। जैसा कि हम देखते हैं कि कनेक्शन की संख्या कनेक्शन के पुन: उपयोग को नहीं बदलती है।
from urllib3 import HTTPConnectionPool
pool = HTTPConnectionPool('ajax.googleapis.com', maxsize=1)
r = pool.request('GET', '/ajax/services/search/web',
fields={'q': 'python', 'v': '1.0'})
print 'Response Status:', r.status
# Header of the response
print 'Header: ',r.headers['content-type']
# Content of the response
print 'Python: ',len(r.data)
r = pool.request('GET', '/ajax/services/search/web',
fields={'q': 'php', 'v': '1.0'})
# Content of the response
print 'php: ',len(r.data)
print 'Number of Connections: ',pool.num_connections
print 'Number of requests: ',pool.num_requests
जब हम उपरोक्त कार्यक्रम चलाते हैं, तो हमें निम्नलिखित आउटपुट मिलते हैं -
Response Status: 200
Header: text/javascript; charset=utf-8
Python: 211
php: 211
Number of Connections: 1
Number of requests: 2