一个端口可以同时监听两种不同的协议吗?

3

你好,同一个端口可以用于监听两种不同的协议请求吗?也就是说,我能否在相同的端口上同时处理http和https请求?

4个回答

6

只有当所有协议都要求客户端先发送数据时,您才能这样做。您可以编写一个伪服务器来读取数据并检测正在使用的协议,然后将其重定向到适当的本地服务器。对于像ssh这样的协议,无法执行此操作,因为服务器首先发送数据,而客户端则响应该数据。


非常感谢你,Howie。我正在创建一个移动客户端,它发送数据,但很多时候它只会响应,那么这样做是不行的吗? - garima
@garima:我不确定我理解你的意思。 - cdhowie
@howie 我的客户端响应服务器发送的数据。 - garima

3

你可以这样做,但你需要在该端口上编写自己的监听器,以处理这两种情况。我不知道有哪些Web服务器可以做到这一点。


1
例如,NodeJS上的socket.io正是这样做的。它可以监听标准端口80,并根据需要使用HTTP或WebSocket协议。

0

Weblogic实际上从同一个端口提供两种不同的协议,即http和LDAP。 Weblogic内置了一个LDAP服务器,Weblogic服务器和嵌入式LDAP服务器都监听同一个端口7001。

您可以通过将浏览器指向http://earth1.com:7001/console来访问WL管理控制台。

您可以通过LDAP浏览器ldap://earth1.coom:7001连接到LDAP服务器。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接