Python - 連線重用



當客戶端向伺服器發出有效請求時,會在它們之間建立一個臨時連線以完成傳送和接收過程。但是,在某些情況下,需要保持連線活動,因為需要在通訊的程式之間自動請求和響應。例如,互動式網頁。網頁載入後,需要提交表單資料或下載其他 CSS 和 JavaScript 元件。為了獲得更快的效能以及客戶端和伺服器之間不間斷的通訊,需要保持連線活動。

Python 提供了 **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
廣告