Проверяет знание HTTP-клиента и connection reuse, необходимое для реальной разработки.
http.Client переиспользует соединения (keep-alive).
Если создавать новый клиент на каждый запрос — соединения не будут кешироваться, что приведёт к утечкам сокетов и огромной задержке.
http.Client в Go — это thread-safe объект, предназначенный для многократного использования. Внутри него есть:
пул TCP-соединений
обработка keep-alive
лимиты одновременных соединений
таймауты
Почему ошибка:
Каждый новый client → новое соединение.
TCP handshake стоит дорого.
Нет reuse соединений.
Можно переполнить file descriptors.
Сервер видит лавину коротких подключений.
Правильно:
создавать один клиент на сервис
использовать кастомный Transport
задавать таймауты