欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Go?http.Transport?主要參數(shù)說明

 更新時(shí)間:2023年06月05日 08:58:08   作者:amc  
這篇文章主要為大家介紹了Go?http.Transport主要參數(shù)說明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

正文

在 Go 中創(chuàng)建一個(gè) http client 時(shí),一般會使用 Go http 包的 Transport 類型。本文主要說明 http.Transport 需要關(guān)注的主要參數(shù)。

http.Transport 類型說明

首先我們要明確的是,我們開發(fā) http client 的時(shí)候,經(jīng)常會這么寫:

client := &http.Client{
    Transport: http.DefaultTransport,
}

但細(xì)看可以發(fā)現(xiàn),http.Client 的 Transport 成員類型是 http.RoundTripper,而不是 http.Transport 類型。換句話說,開發(fā)者完全可以拋棄原生的實(shí)現(xiàn),自己定制一份 http.RoundTripper 接口來實(shí)現(xiàn)一個(gè)完整的 http 調(diào)用。不過這不在本文說明范圍內(nèi)。

http.Transport 主要參數(shù)

該類型通過一系列的參數(shù)來決定其行為。請注意的是,同樣數(shù)據(jù)類型的不同參數(shù),其表達(dá)的默認(rèn)值是不同的。

參數(shù)作用默認(rèn)值
連接控制類
Proxy指定使用 http 代理。這里推薦傳入 http.ProxyFromEnvironment, 以支持系統(tǒng)配置的 http 代理nil,表示 不使用 任何代理,請注意
DialContextTCP 連接函數(shù)。開發(fā)者可以簡單封裝一下,一般可以用來做一些監(jiān)控或者特殊的地址解析邏輯nil, 使用默認(rèn)的 http 連接
超時(shí)控制類
TLSHandShakeTimeouttime.Duration 類型,表示TLS 握手超時(shí)時(shí)間。這里推薦傳入一個(gè)非零值0, 表示無限制
IdleConnTimeouttime.Duration 類型,表示一個(gè)連接在空閑多久之后關(guān)閉。0, 表示不關(guān)閉
連接數(shù)控制類
MaxIdleConns最大空閑連接數(shù)0, 表示無限制
MaxIdleConnsPerHost每一個(gè) host 的最大連接數(shù)http.DefaultMaxIdleConnsPerHost,即 2
緩沖區(qū)類
WriteBufferSize寫緩沖區(qū)的大小4kB
ReadBufferSize讀緩沖區(qū)的大小4kB
其他
ForceAttemptHTTP2字面意思,是否強(qiáng)制嘗試 HTTP2。建議設(shè)置為 truefalse, 不嘗試

DefaultTransport 配置

http.DefaultTransport 是基于 http.Transport 實(shí)現(xiàn)的,其配置說明如下:

參數(shù)
Proxyhttp.ProxyFromEnvironment 即 follow 系統(tǒng)配置
DialContextnet.Dialer 類型的 DialContext 方法
TLSHandShakeTimeout10 秒
IdleConnTimeout90 秒
MaxIdleConns100
MaxIdleConnsPerHosthttp.DefaultMaxIdleConnsPerHost,即 2
WriteBufferSize4kB
ReadBufferSize4kB
ForceAttemptHTTP2true

DialContext 簡單示例

func dialContext(ctx context.Context, network, addr string) (net.Conn, error) {
    // 注: 這里無視了 ctx 的超時(shí), 實(shí)際上應(yīng)該加上
    log.Debugf("request connecting %v, %v", network, addr)
    tcpAddr, err := net.ResolveTCPAddr(network, addr)
    if err != nil {
        return nil, fmt.Errorf("resolve %s failed: %w", addr, err)
    }
    conn, err := net.DialTCP(network, nil, tcpAddr)
    if err != nil {
        return nil, fmt.Errorf("connect to %v failed: %w", tcpAddr, err)
    }
    return conn, nil
}

Reference

以上就是Go http.Transport 主要參數(shù)說明的詳細(xì)內(nèi)容,更多關(guān)于Go http.Transport參數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 淺析Go語言中的棧和先進(jìn)先出原則

    淺析Go語言中的棧和先進(jìn)先出原則

    這篇文章主要來和大家探討一樣如何在Go語言中實(shí)現(xiàn)和使用堆棧,以及堆棧如何遵循先進(jìn)先出 (FIFO) 原則,文中的示例代碼簡潔易懂,需要的可以參考一下
    2023-07-07
  • Go系列教程之反射的用法

    Go系列教程之反射的用法

    這篇文章主要介紹了Go系列教程之反射的用法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-01-01
  • Go語言基于viper的conf庫進(jìn)行配置文件解析

    Go語言基于viper的conf庫進(jìn)行配置文件解析

    在現(xiàn)代軟件開發(fā)中,配置文件是不可或缺的一部分,如何高效地將這些格式解析到 Go 結(jié)構(gòu)體中,一直是開發(fā)者的痛點(diǎn),下面我們來看看如何使用conf進(jìn)行配置文件解析吧
    2025-03-03
  • VS Code配置Go語言開發(fā)環(huán)境的詳細(xì)教程

    VS Code配置Go語言開發(fā)環(huán)境的詳細(xì)教程

    這篇文章主要介紹了VS Code配置Go語言開發(fā)環(huán)境的詳細(xì)教程,本文通過實(shí)例代碼圖文相結(jié)合的形式給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Golang打包配置文件的實(shí)現(xiàn)示例

    Golang打包配置文件的實(shí)現(xiàn)示例

    本文主要介紹了Golang打包配置文件的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • Golang?Redis連接池實(shí)現(xiàn)原理及示例探究

    Golang?Redis連接池實(shí)現(xiàn)原理及示例探究

    這篇文章主要為大家介紹了Golang?Redis連接池實(shí)現(xiàn)示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • golang實(shí)現(xiàn)頁面靜態(tài)化操作的示例代碼

    golang實(shí)現(xiàn)頁面靜態(tài)化操作的示例代碼

    這篇文章主要介紹了golang實(shí)現(xiàn)頁面靜態(tài)化操作的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • 詳解Go開發(fā)Struct轉(zhuǎn)換成map兩種方式比較

    詳解Go開發(fā)Struct轉(zhuǎn)換成map兩種方式比較

    本篇文章主要介紹了詳解Go開發(fā)Struct轉(zhuǎn)換成map兩種方式比較,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • golang qq郵件發(fā)送驗(yàn)證碼功能

    golang qq郵件發(fā)送驗(yàn)證碼功能

    驗(yàn)證碼在多個(gè)場景下發(fā)揮著重要作用,如注冊/登錄、短信接口保護(hù)、提交/投票、密碼找回和支付驗(yàn)證等,以保障賬號安全和防止惡意操作,此外,文章還介紹了使用golang通過qq郵件發(fā)送驗(yàn)證碼的實(shí)現(xiàn)過程,包括獲取授權(quán)碼、下載依賴包和編寫代碼,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • Go?viper讀取配置文件的示例詳解

    Go?viper讀取配置文件的示例詳解

    這篇文章主要為大家詳細(xì)介紹了Go語言如何利用viper實(shí)現(xiàn)讀取配置文件,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以參考一下
    2023-08-08

最新評論