Netty服务器如何通过单个端口同时支持http和HTTPS协议?

2022-04-04 00:00:00 http https java netty
我们知道,我们提供http service监听80端口,https service监听443端口。为什么我们不在一个港口上提供两种服务呢?具体原因是什么?Netty服务器如何通过单个端口同时支持http和HTTPS协议?


解决方案

您可以这样做,但我认为这不是一个好主意,因为两个端口都为Http或HTTPS定义得很好。也就是说,如果您真的想这样做,您可以根据消息的前5个字节检测是否使用了SSL,然后动态注入SSL处理程序。

Netty本身包括OptionalSslHandler,它正好为您完成此操作:

https://github.com/netty/netty/blob/netty-4.1.32.Final/handler/src/main/java/io/netty/handler/ssl/OptionalSslHandler.java

相关文章