首页 > 解决方案 > Jetty SslConnectionFactory nextProtocol

问题描述

我正在查看一些用于将 Jetty 配置为使用 https 的示例代码。

在示例中,它使用 SslContextFactory,并将“h2”作为第二个参数传递。

SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory, "h2");

我很好奇这个字符串是什么。当我去看文档时,它完全没有说明它是什么。

那么这个 nextProtocol 参数是什么?

标签: javassljetty

解决方案


“下一个协议”是在初始连接期间解决协议的方式。

ConnectionFactory 概念控制着所有这些。

通常这用于 HTTP/2,在 TLS/1.2+ 环境中混合使用 ALPN,但人们确实将它用于其他事情。如果您查看 ALPN 的历史,您无疑会发现称为 NPN 的旧(现已弃用)扩展,它被称为“下一个协议协商”。

常见示例:

  • 同时提供明文 HTTP 和加密 HTTPS 的单个端口。
  • 为 PROXY 4、PROXY 5、HTTP/1.x 和 HTTP/2.x 提供服务的单个端口。
  • 可以处理 HTTP/1.1、HTTP/2 和其他协议(如任何无数 RPC 协议)的单个端口。

推荐阅读