Keep-alive и пул соединений в Go HTTP-клиенте.

Ответ

HTTP/1.1 keep-alive - одно TCP-соединение для нескольких запросов. В Go http.Client по умолчанию переиспользует соединения (Transport с пулом). Настройка: MaxIdleConns, MaxIdleConnsPerHost, IdleConnTimeout. Не закрывать тело ответа до полного прочтения - иначе соединение не вернется в пул. Для большого числа запросов увеличить MaxIdleConnsPerHost.

client := &http.Client{
    Transport: &http.Transport{
        MaxIdleConnsPerHost: 100,
        IdleConnTimeout:     90 * time.Second,
    },
    Timeout: 30 * time.Second,
}
🧠Квиз 🏆Лидеры 🎯Собесед. 📖Вопросы 📚База зн.