国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

httpx HTTP/2支持

2022-07-27 10:38 更新

HTTP/2 是 HTTP 協(xié)議的主要新迭代,它提供了更高效的傳輸,并具有潛在的性能優(yōu)勢。HTTP/2 不會更改請求或響應的核心語義,但會更改數(shù)據(jù)與服務器之間的發(fā)送方式。

與 HTTP/1.1 使用的文本格式不同,HTTP/2 是一種二進制格式。二進制格式提供完整的請求和響應多路復用,以及 HTTP 標頭的高效壓縮。流多路復用意味著 HTTP/1.1 要求每個并發(fā)請求有一個 TCP 流,而 HTTP/2 允許單個 TCP 流處理多個并發(fā)請求。

HTTP/2 還提供了對響應優(yōu)先級和服務器推送等功能的支持。

有關HTTP / 2的綜合指南,您可能需要查看“HTTP2解釋”。

啟用 HTTP/2

使用httpx客戶端時,默認情況下不啟用 HTTP/2 支持,因為 HTTP/1.1 是一個成熟的、久經(jīng)沙場的傳輸層,而我們的 HTTP/1.1 實現(xiàn)目前可能被認為是更健壯的選項。默認情況下,將來版本的 httpx可能會啟用 HTTP/2 支持。

如果您要發(fā)出高度并發(fā)的請求,則可能需要考慮試用我們的 HTTP/2 支持。您可以通過首先確保安裝可選的HTTP / 2依賴項來執(zhí)行此操作...

$ pip install httpx[http2]

然后實例化啟用了 HTTP/2 支持的客戶端:

client = httpx.AsyncClient(http2=True)
...

您還可以將客戶端實例化為上下文管理器,以確保所有 HTTP 連接都具有良好的作用域,并且在上下文塊退出后將關閉。

async with httpx.AsyncClient(http2=True) as client:
    ...

HTTP/2 支持在Client 和AsyncClient 上都可用,盡管如果您發(fā)出大量并發(fā)請求,它通常在異步上下文中更有用。

檢查 HTTP 版本

在客戶端上啟用 HTTP/2 支持并不一定意味著您的請求和響應將通過 HTTP/2 傳輸,因為客戶端和服務器都需要支持 HTTP/2。如果連接到僅支持 HTTP/1.1 的服務器,則客戶端將改用標準 HTTP/1.1 連接。

您可以通過檢查響應上的?.http_version?屬性來確定使用了哪個版本的 HTTP 協(xié)議。

client = httpx.AsyncClient(http2=True)
response = await client.get(...)
print(response.http_version)  # "HTTP/1.0", "HTTP/1.1", or "HTTP/2".


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號