Python - Réutilisation de la connexion

Lorsqu'un client fait une demande valide à un serveur, une connexion temporaire est établie entre eux pour terminer le processus d'envoi et de réception. Mais il existe des scénarios où la connexion doit être maintenue active car il y a besoin de requêtes et de réponses automatiques entre les programmes qui communiquent. Prenons par exemple une page Web interactive. Une fois la page Web chargée, il est nécessaire de soumettre des données de formulaire ou de télécharger d'autres composants CSS et JavaScript. La connexion doit être maintenue active pour des performances plus rapides et une communication ininterrompue entre le client et le serveur.

Python fournit urllib3module qui avait des méthodes pour prendre en charge la réutilisation des connexions entre un client et un serveur. Dans l'exemple ci-dessous, nous créons une connexion et effectuons plusieurs requêtes en passant différents paramètres avec la requête GET. Nous recevons plusieurs réponses mais nous comptons également le nombre de connexions qui ont été utilisées dans le processus. Comme on le voit, le nombre de connexion ne change pas, ce qui implique la réutilisation de la connexion.

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

Lorsque nous exécutons le programme ci-dessus, nous obtenons la sortie suivante -

Response Status: 200
Header:  text/javascript; charset=utf-8
Python:  211
php:  211
Number of Connections:  1
Number of requests:  2