TGViewer
Типичный программист Типичный программист @tproger · 78.1K subscribers
Post #14938 1.38K
Закрыл тело HTTP-ответа — и неожиданно ускорил следующие запросы

В примере из блога Go программа сто раз получает HTTP-статус, не читая тело. С HTTP/1 на машине автора это занимает около 710 мс в Go 1.26 и 150 мс в Go 1.27.

Причина — повторное использование соединений. В HTTP/1 нужно дочитать текущий ответ, чтобы найти начало следующего. Раньше закрытие непрочитанного тела приводило к потере соединения для повторного использования.

В Go 1.27 net/http.Transport пробует дочитать остаток в фоне: не больше 256 КБ и 50 мс. Если успевает, соединение можно вернуть в пул. Приложению по-прежнему нужно вызвать resp.Body.Close().

Ускорение зависит от размера ответа и сети. Для HTTP/2 такая процедура дочитывания не нужна: там запросы используют отдельные потоки.
  • ❤ 3
  • 😇 2
  • 😁 1
  • 🤔 1
  • 👌 1
  • 🍌 1
  • 👀 1
  • 🆒 1
  • 💘 1
  • 🙉 1
  • 👾 1
More from @tproger
  1. Oct 16, 2026«Повторим запрос один раз» может превратиться в восемь запросов Представьте цепочку A → B…
  2. Oct 16, 2026Баг появлялся в 0,001% случаев. Виноваты оказались два формата одного ответа MySQL-запрос…
  3. Oct 16, 2026Историю звёзд GitHub собирали за 2500 запросов. Теперь хватает 24 Чтобы построить график п…
  4. Oct 15, 2026Зачем Figma рисует невидимый HTML рядом с холстом На холсте Figma может быть сотня слоёв,…
  5. Oct 14, 2026Python обработал 7,6 ГБ JSON за 0,12 секунды Здесь интересно, куда уходило время. Дэниел Л…
  6. Oct 14, 2026Завтра иду на GoCloud Tech 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 →