编程 HTTP/2 进 Go 标准库:net/http 接管,x/net/http2 将弃用

2026-10-03 21:01:25

HTTP/2 进 Go 标准库:net/http 接管,x/net/http2 将弃用

Go 周刊 2026 W36(jishuzhan.net)消息:将 HTTP/2 原生搬进标准库 net/http 的长期工程,已被 Damien Neil 标记为“已完成”。这也意味着 x/net/http2 由此走向弃用。

背景

多年来,Go 的 HTTP/2 服务端实现一直放在 golang.org/x/net/http2 这个外部模块里,net/http 内部通过引用它来支持 HTTP/2。

把 HTTP/2 合并进 net/http 之后,HTTP/2 的实现与 HTTP/1.1 一样进入标准库维护范围,x/net/http2 停止独立演进。

net/http 的相关行为调整

近几个版本已经落地了一些配套调整:

  • Go 1.27 里,HTTP/2 服务端遵循 RFC 9218 的客户端优先级。
  • net/http 的 Response.Body 在关闭时会自动 drain。

Go 1.27 按信源标注保留,具体发布状态以官方为准。

对使用者的影响

  • 直接 import golang.org/x/net/http2 做服务端配置的项目,要留意迁移路径,x/net/http2 会逐步弃用。具体迁移 API 与弃用节奏以官方文档为准。
  • 依赖 x/net/http2 内部行为的第三方库,包括各类 http2 中间件、gRPC、反向代理,需要跟着升级。
  • 因为 HTTP/2 进了标准库,HTTP/2 的安全修复会随 Go 补丁版本发布,跟进 go 版本即可。

参考

复制全文 生成海报 Go net http HTTP 2 x http2

推荐文章

程序员茄子在线接单