首页 > 解决方案 > netty 服务器如何通过单个端口同时支持 Http 和 Https 协议?

问题描述

众所周知,我们提供http service80端口https service监听,443端口监听。为什么我们不在一个端口上提供两种服务呢?具体原因是什么?Netty 服务器如何通过单个端口同时支持 Http 和 Https 协议?

标签: javahttphttpsnetty

解决方案


您可以这样做,但我认为这是一个坏主意,因为这两个端口都针对 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


推荐阅读