TCPConnector維持鏈接池,限制並行連接的總量,當池滿了,有請求退出再加入新請求。默認是100,limit=0的時候是無限制
1.use_dns_cache: 使用內部DNS映射緩存用以查詢DNS, 優點:可能會使連接建立的速度更快, 缺點:比如說ip其實變了,但是DNS在映射緩存中的信息還沒更新過來。
2.limit:同時連接的最大數量
3.limit_per_host: 同一端點的最大連接數量。同一端點即(host, port, is_ssl)完全相同
TCPConnector
class aiohttp.TCPConnector(*, verify_ssl=True, fingerprint=None, use_dns_cache=True, ttl_dns_cache=10, family=0, ssl_context=None, local_addr=None, resolver=None, keepalive_timeout=sentinel, force_close=False, limit=100, limit_per_host=0, enable_cleanup_closed=False, loop=None)
用於使用TCP處理HTTP和HTTPS的連接器。
如果你不知道該用什么連接器傳輸數據,那就用它吧。
TCPConnector繼承於BaseConnector.
接受BaseConnector所需的所有參數和幾個額外的TCP需要的參數。
(參數)Parameters:
verify_ssl (布爾類型) –
對HTTPS請求驗證SSL證書(默認是驗證的)。如果某些網站證書無效的話也可禁用。(該參數可選)
2.3版本后不贊成通過ClientSession.get()方法傳遞該參數。
fingerprint (字節碼) -
傳遞所期望的SHA256值(使用DER編碼)來驗證服務器是否可以成功匹配。對證書固定非常有用。
警告: 不贊成使用不安全的MD5和SHA1哈希值。
新增於0.16版本。
2.3版本后不贊成通過ClientSession.get()方法傳遞該參數。
use_dns_cache (布爾類型) -
使用內部緩存進行DNS查找,默認為True。
這個選項可能會加速建立連接的時間,有時也會些副作用。
新增於0.17版本。
自1.0版本起該參數默認為True。
ttl_dns_cache -
查詢過的DNS條目的失效時間,None表示永不失效。默認是10秒。
默認情況下DNS會被永久緩存,一些環境中的一些HOST對應的IP地址會在特定時間后改變。可以使用這個參數來讓DNS刷新。
新增於2.0.8版本。
limit (整數) - 並發連接的總數。如果為None則不做限制。(默認為100)
limit_per_host - 向同一個端點並發連接的總數。同一端點是具有相同 (host, port, is_ssl)信息的玩意 x 3! 如果是0則不做限制。(默認為0)
resolver (aiohttp.abc.AbstructResolver) - 傳入自定義的解析器實例。默認是aiohttp.DefaultResolver(如果aiodns已經安裝並且版本>1.1則是異步的)。
自定義解析器可以配置不同的解析域名的方法。
1.1版本修改的內容: 默認使用aiohttp.ThreadResolver, 異步版本在某些情況下會解析失敗。
family (整數) -
代表TCP套接字成員,默認有IPv4和IPv6.
IPv4使用的是socket.AF_INET, IPv6使用的是socket.AF_INET6.
0.18版本修改的內容: 默認是0,代表可接受IPv4和IPv6。可以傳入socket.AF_INET或socket.AF_INET6來明確指定只接受某一種類型。
ssl_context (ssl.SSLContext) -
ssl上下文(管理器)用於處理HTTPS請求。(該參數可選)
ssl_context 用於配置證書授權通道,支持SSL選項等作用。
local_addr (元組) -
包含(local_host, local_post)的元組,用於綁定本地socket。
新增於0.21版本。
force_close (布爾類型) - 連接釋放后關閉底層網絡套接字。(該參數可選)
enable_cleanup_closed(元組)(這里原文應該寫錯了,應該是布爾類型,不管是之前的文檔還是源碼都是接受的布爾值。) -
一些SSL服務器可能會沒有正確的完成SSL關閉過程,這種時候asyncio會泄露SSL連接。如果設置為True,aiohttp會在兩秒后額外執行一次停止。此功能默認不開啟。
verify_ssl
如果返回True則會進行ssl證書檢測。
該屬性只讀。
ssl_context
返回用於https請求的ssl.SSLContext實例,該屬性只讀。
family
TCP套接字成員, 比如socket.AF_INET 或 socket.AF_INET6。
該屬性只讀。
dns_cache
如果DNS緩存可用的話返回True,否則返回False。
該屬性只讀。
新增於0.17版本。
cached_hosts
如果dns緩存可用,則返回已解析的域名緩存。
該屬性只讀,返回的類型為types.MappingProxyType。
新增於0.17版本。
fingerprint
返回傳入的DER格式證書的MD5,SHA1或SHA256哈希值 ,如果沒有的話會返回None.
該屬性只讀。
新增於0.16版本。
clear_dns_cache(self, host=None, port=None)
清除內部DNS緩存。
如果host和port指定了信息會刪除指定的這個,否則清除所有的。
新增於0.17版本。