原标题:《Better HTTP/1 connection reuse in Go 1.27》 评分: 251 | 作者: allddd 💭 关个 Body,还得先替库下载完残局吗? 🎯 讨论背景 Go 1.27 改进了 net/http(Go 标准 HTTP 库)客户端处理提前关闭 Response Body 的方式:对 HTTP/1 响应,它会在受限范围内异步读取剩余数据,争取保留 keep-alive 连接而非频繁新建 TCP 连接。此前开发者通常必须手动 drain 响应体,否则一次只读取部分 JSON 或直接 Close 可能令连接不可复用;这也催生了大量自制 helper。HTTP/2(支持多路复用的 HTTP 协议版本)以 stream 为单位处理请求,协议设计上没有同样的排空需求,所以文章以禁用 HTTP/2 来突出 HTTP/1 的性能差异。讨论还牵涉 encoding/json(Go 标准 JSON 库)的缓冲读取细节:尾随换行未被读走时,应用层看似已完成解析,传输层却仍无法安全复用连接。 📌 讨论焦点 Close 的语义、文档与强制断连接口 评论认为,关闭