ALPN
ALPN(Application-Layer Protocol Negotiation,RFC 7301)在 TLS 握手时协商应用协议(如 h2、http/1.1),避免额外往返。
用途
在 TLS 握手扩展中协商上层协议,使 443 端口复用于 HTTP/2、HTTP/1.1 等而无需 NPN 额外往返。
机制
ClientHello 携带 ALPN 扩展含支持协议列表(h2, http/1.1),ServerHello 选一个返回。协商在握手内完成,无额外往返。
用例
- 基于 TLS 的 HTTP/2
- 基于 QUIC 的 HTTP/3
- 端口复用