golang http client keep-alive最大连接数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang http client keep-alive最大连接数相关的知识,希望对你有一定的参考价值。

参考技术A

Client前两个请求对同一个host发起,复用了55564接口的链接,第三次请求对另外一个HOST发起,由于MaxIdleConns=1,会关闭前一个链接然后发起一个新的链接,第四次同样也会关闭第三次的链接,重新发起。说明MaxIdleConns限制了最大keep-alive的连接数,超出的连接会被关闭掉。

Client对不同的两个Host发起的请求,都复用了连接

golang http_client

package main

import (
    "fmt"
    "net/http"
    "net/http/httputil"
)

func main() {
    req, err := http.NewRequest(http.MethodGet, "http://www.google.com", nil)
    //req.Header.Add("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1")
    client := http.Client {
        CheckRedirect: func(req *http.Request, via []*http.Request) error {
            fmt.Println("Redirect:",req)
            return nil
        },
    }
    resp, err := client.Do(req)
    //resp, err := http.Get("http://www.imooc.com")

    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()
    bytes, err := httputil.DumpResponse(resp, true)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(bytes))
}

以上是关于golang http client keep-alive最大连接数的主要内容,如果未能解决你的问题,请参考以下文章

golang http client keep-alive最大连接数

golang使用http client发起get和post请求示例

golang使用http client发起get和post请求示例

golang入门案例之http client请求

golang http.client 遇到了 Connection reset by peer 问题

golang中如何使用http长链接(client端)