TGViewer
Golang Golang @golang_google · 40.5K subscribers
Post #3652 4.64K
🐹 Один непрочитанный ответ мог заставлять Go заново открывать HTTP-соединения. В Go 1.27 это исправили.

Раньше при HTTP/1 одного resp.Body.Close() было недостаточно: если тело ответа не дочитано, соединение приходилось закрывать. Следующий запрос снова тратил время на TCP и TLS.

Теперь net/http при закрытии тела асинхронно дочитывает остаток в пределах установленного лимита, чтобы сохранить соединение для следующих запросов.

В тесте авторов статьи 100 запросов, которым нужен только статус ответа, заняли 150 мс вместо 710 мс. Почти пятикратное ускорение в конкретном сценарии, без изменений кода.

Закрывать `resp.Body` по-прежнему обязательно. Изменение касается HTTP/1: у HTTP/2 непрочитанное тело отдельного ответа не мешает другим запросам использовать соединение.

https://uproger.com/go-1-27-http1/

@Golang_google

#golang
  • 👍 16
  • ❤ 7
  • 🔥 6
More from @golang_google
  1. Oct 17, 2026🐋 DeepSeek V4.1-Flash-1017: метрики выше, ответы короче, Search и Fetch API открыты всем…
  2. Oct 17, 2026🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку Окружение решает больше, чем кажет…
  3. Oct 15, 2026🔎 Конец программирования: создатель InfluxDB считает, что код скоро перестанут писать и ч…
  4. Oct 15, 2026На GitHub доступен модульный фреймворк для гибкого тестирования на Go — Testo. Testo напис…
  5. Oct 15, 202610 ноября в Москве пройдёт Go Birthday Conf от RWB Отметим день рождения Golang вместе с э…
  6. Oct 14, 2026🤖 Зачем держать отдельный контейнер для каждого ИИ-агента, если большую часть времени он…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →