Есть ли Keep Alive в HTTP1

«Есть ли Keep Alive в HTTP1» — вопрос из категории Сети, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, в HTTP/1.1 Keep-Alive включен по умолчанию (персистентные соединения). Это позволяет переиспользовать TCP-соединение для нескольких запросов, уменьшая накладные расходы на установку соединения.

Пример заголовков:

Connection: Keep-Alive  
Keep-Alive: timeout=5, max=1000  

В Go можно управлять Keep-Alive через http.Transport:

transport := &http.Transport{
    DisableKeepAlives: false, // включен по умолчанию
    MaxIdleConns:      100,
    IdleConnTimeout:   90 * time.Second,
}
client := &http.Client{Transport: transport}

Если сервер не поддерживает Keep-Alive, соединение закрывается после ответа.