日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

学习okhttp wiki--Connections.

發(fā)布時間:2024/10/12 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习okhttp wiki--Connections. 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Connections

  盡管你只提供了URL,OkHttp使用三種類型來創(chuàng)建它和你的web服務器的連接:URL,地址(Address)和路由(Route)。

URLs

  URLs (例如 https://github.com/square/okhttp) 是HTTP和互聯(lián)網(wǎng)的基礎。除了作為網(wǎng)絡上所有事物的一種通用的,去中心化的命名策略,它們還指明了如何訪問網(wǎng)絡資源。

  URLs是抽象的:

  • 它們指定了訪問是明文的(http)還是加密的(https),但沒有指明哪些加密算法不應該被使用。也沒有指定如何驗證對方的證書(HostnameVerifier) 和哪些證書被信任(SSLSocketFactory)。

  • 它們沒有指定是否應該使用特定的代理服務器,以及如何認證代理服務器。

  •   它們也是具體的:每一個URL標識了一個明確的路徑(例如 /square/okhttp) 和查詢參數(shù)(例如 ?q=sharks&lang=en)。每一個web服務器會支持很多的URL。

    Addresses

      地址指定了一個web服務器(例如 github.com) 以及連接此服務器需要的所有靜態(tài)配置:端口號,HTTPS設置,偏好的網(wǎng)絡協(xié)議(例如 HTTP/2 or SPDY)。

      共享同樣地址的URL可能也共享同樣的底層TCP套接字連接。共享連接有明顯的性能優(yōu)勢:更少的延遲,更高的吞吐量(歸因于TCP慢啟動) 和節(jié)省電量。OkHttp使用了一個ConnectionPool來自動重用HTTP/1.x連接,多路復用HTTP/2和SPDY連接。

      在OkHttp中,地址的部分字段來自于URL(協(xié)議,主機名和端口),其余的來自OkHttpClient。

    Routes

      路由提供了真正連上web服務器所需要的動態(tài)信息。這是一個用于嘗試的特定的IP地址(比如由DNS查詢發(fā)現(xiàn)的),使用的正確的代理服務器(如果用了ProxySelector)和使用哪個版本的TLS來協(xié)商(用于HTTPS連接)。

      單一的地址可能存在多個路由。例如,一個托管在多個數(shù)據(jù)中心的web服務器在它的DNS響應中可能產(chǎn)生多個IP地址。

    Connections

      當你使用OkHttp請求一個URL,下面是它會做的:

  • 它使用這個URL和配置后的OkHttpClient來創(chuàng)建一個address。這個地址說明了我們將如何連接到web服務器。

  • 它嘗試從connection pool中取出使用這一地址的連接。

  • 如果在池中沒有發(fā)現(xiàn)可用的連接,它會選擇一個route來嘗試。這通常意味著做一個DNS請求來獲取服務器的IP地址。然后,如果需要,它會選擇一個TLS版本和代理服務器。

  • 如果它是一個新的路由,它會建立一個直接的套接字連接,或者TLS隧道(用于HTTPS穿越HTTP代理),或者直接的TLS連接。如果需要,它會做TLS握手。

  • 它發(fā)送HTTP請求,讀取響應。

  •   如果連接出了問題,OkHttp會選擇另一個路由然后重試。這讓OkHttp在部分服務器地址不可訪問時可以恢復。在連接池中的連接過期或者嘗試的TLS版本不支持時,這種重試也是有用的。

      一旦接收到了響應,連接會返回到連接池中,等待在將來的請求中重用。連接在一段時間不被激活后,會從連接池中刪除。

    轉(zhuǎn)載于:https://www.cnblogs.com/yuanchongjie/p/4962310.html

    總結

    以上是生活随笔為你收集整理的学习okhttp wiki--Connections.的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。