HTTP/2 的明文版本,基本可以不用
HTTP/2 有两个版本:基于 TLS 的 h2(ALPN 协商),和明文直接升级的 h2c(Upgrade: h2c)。浏览器只实现了前者,h2c 主要出现在服务间调用和某些代理里。
给对外站点配 h2c 没有意义:浏览器不会用,反而多一个需要维护的入口。给内部 gRPC 用倒是常见,但那本来就是 HTTP/2 明文帧,不需要升级机制。
nginx 里 listen 80 http2; 这种写法会被警告,且行为不符合预期——明文端口上的 h2 只对 prior-knowledge 客户端有效,普通浏览器还是走 HTTP/1.1。
结论:对外只开 443 的 h2,明文一律 HTTP/1.1,省心。