
- Python - 網路程式設計
- Python - 網路簡介
- Python - 網路環境
- Python - 網際網路協議
- Python - IP 地址
- Python - DNS 查詢
- Python - 路由
- Python - HTTP 請求
- Python - HTTP 響應
- Python - HTTP 頭部
- Python - 自定義 HTTP 請求
- Python - 請求狀態碼
- Python - HTTP 認證
- Python - HTTP 資料下載
- Python - 連線重用
- Python - 網路介面
- Python - 套接字程式設計
- Python - HTTP 客戶端
- Python - HTTP 伺服器
- Python - 構建 URL
- Python - Web 表單提交
- Python - 資料庫和 SQL
- Python - Telnet
- Python - 郵件訊息
- Python - SMTP
- Python - POP3
- Python - IMAP
- Python - SSH
- Python - FTP
- Python - SFTP
- Python - Web 伺服器
- Python - 上傳資料
- Python - 代理伺服器
- Python - 目錄列表
- Python - 遠端過程呼叫
- Python - RPC JSON 伺服器
- Python - Google 地圖
- Python - RSS Feed
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
廣告