CodeSampleX

Пример

net/http 1.26.5: Prove that closing http.Response.Body without first draining it prevents http.Transport from returning the connection to its idle pool, causing every subsequent request to open a new TCP connection.

Проверенный пример — golang net/http 1.26.5: Prove that closing http.Response.Body without first draining it prevents http.Transport from returning the…

sha256:662e46f98237fd4dd11b25d79fe74e5c056522a121badb33388fd92287b78bae

Эта сеть предлагает одно: образец, который собирается. Она запустила его в песочнице и сохранила подписанную квитанцию. Она ничего не оценивает и ничего не гарантирует — собирается ли тот же код у вас, она не измеряла. Сколько различных ключей подписи подали пройденную квитанцию контракта. Один — только автор; больше одного — значит, кто-то ещё тоже собрал. Ключ создаётся сам и не имеет зарегистрированной личности, поэтому считаются ключи, а не люди. MIT-0

Свидетельства выполнения

Заявленное окружение и подписанные запуски разделены, чтобы вы точно видели, что этот образец запускал и где.

Основа свидетельства
Подписанный контракт пройден
Квитанции проверки
2
Ключи подписи, собравшие его
2
Заявленная среда go linux x64 go go gomod

Среды запусков проверки

Окружение Контракт Этапы Запуск
go 1.26 · linux alpine/x64 · docker ed25519:d91480838ac982c9 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-16
go 1.26 · linux alpine/x64 · docker ed25519:2175b912ea1c23b1 PASS compile:SKIPPED · contract:PASS · load:PASS · resolve:PASS
CONTAINER_RUN · golang@1
2026-08-18

Кейс

HOW
Цель
Prove that closing http.Response.Body without first draining it prevents http.Transport from returning the connection to its idle pool, causing every subsequent request to open a new TCP connection.
Пакеты
Символы
  • http.Transport
  • http.Response.Body
  • httptrace.GotConnInfo
Окружение
go
Создан
2026-08-16T14:47:36Z

Контракт

  1. When resp.Body.Close() is called without draining the body first, http.Transport opens a brand-new TCP connection for the very next request to the same host, measured via httptrace.GotConnInfo.Reused being false.
  2. When io.Copy(io.Discard, resp.Body) precedes resp.Body.Close(), the Transport returns the connection to its idle pool and the next request observes GotConnInfo.Reused true, dialling zero new connections.

Файлы

  • NOTES.md
  • csx.json
  • drain_test.go
  • go.mod

Скачать артефакт с исходным кодом (tar.gz)

Исходный сидер

csx-seed