Python 連接重用
Python 連接重用
當(dāng)客戶端向服務(wù)器發(fā)出有效請(qǐng)求時(shí),它們之間將建立一個(gè)臨時(shí)連接以完成發(fā)送和接收過(guò)程。但是在某些情況下,由于正在通信的程序之間需要自動(dòng)請(qǐng)求和響應(yīng),因此需要保持連接狀態(tài)。以一個(gè)交互式網(wǎng)頁(yè)為例。加載網(wǎng)頁(yè)后,需要提交表單數(shù)據(jù)或下載其他CSS和JavaScript組件。需要保持連接狀態(tài)以提高性能,并在客戶端和服務(wù)器之間保持不間斷的通信。
Python提供了urllib3模塊,該模塊具有一些方法來(lái)處理客戶端和服務(wù)器之間的連接重用。在下面的示例中,我們通過(guò)在GET請(qǐng)求中傳遞不同的參數(shù)來(lái)創(chuàng)建連接并發(fā)出多個(gè)請(qǐng)求。我們收到了多個(gè)響應(yīng),但我們還計(jì)算了該過(guò)程中已使用的連接數(shù)。如我們所見,連接數(shù)沒(méi)有改變,這意味著連接的重用。
# Filename : example.py # Copyright : 2020 By Codebaoku # Author by : m.aalaour.cn # Date : 2020-08-25 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
當(dāng)執(zhí)行上面示例代碼,得到以下結(jié)果:
# Filename : example.py # Copyright : 2020 By Codebaoku # Author by : m.aalaour.cn # Date : 2020-08-25 Response Status: 200 Header: text/javascript; charset=utf-8 Python: 211 php: 211 Number of Connections: 1 Number of requests: 2
相關(guān)文章
- python如何遍歷字符串中每一個(gè)字符
- Python讀寫csv文件的操作方法
- 使用Python?Beautiful?Soup解析HTML內(nèi)容的方法
- 在Python里面調(diào)用Golang代碼的方法
- Python錯(cuò)誤JSONDecodeError:?Expecting?value:?line?1?column?1怎么解決
- Python異步之上下文管理器怎么使用
- python如何實(shí)現(xiàn)簡(jiǎn)易的學(xué)生信息管理系統(tǒng)
- Python中Matplotlib圖像如何添加標(biāo)簽
- Python IP地址
- Python HTTP標(biāo)頭
- Python 自定義HTTP請(qǐng)求
- Python 連接重用
- Python HTTP服務(wù)器
- Python 數(shù)據(jù)庫(kù)和SQL
- Python Web服務(wù)器
- Python 代理服務(wù)器
- Python列出目錄
- Python 測(cè)試線程應(yīng)用程序
- Python 調(diào)試線程應(yīng)用程序
- Python 進(jìn)程池