aiohttp的筆記之TCPConnector


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版本。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM