0

我正在使用 Java 制作 telnet 服务器,并且我想检测用户从哪个域连接。就我而言,我有 3 个域(example.comexample.netexample.org)都指向我的 IP,我想为所有这些域托管不同的服务器。我需要检测他们连接到哪个域,以便发送不同的消息。

我知道 Apache 网络服务器与 VirtualHosts 做类似的事情,并且想知道如何在 Java 中做到这一点。

4

2 回答 2

1

你真的不能。

Apache 能够使用虚拟主机支持这一点,因为 HTTP 协议在请求内容中包含主机标头,浏览器用 URL 的主机部分填充该主机标头。(参见rfc-2616的第 14.23 节

据我所知,Telnet 不包含这样的标头。最好的检查位置是rfc-854

于 2013-03-13T23:20:46.613 回答
0

HTTP 协议与域名密切相关,如果您正在构建服务器,则更有可能满足您的需求Telnet。这是一个坚如磐石且经过良好改进的协议。

在这种情况下,为什么不使用HTTP而不是弃用的Telnet协议呢?

这里的优点是:

  • HTTP 处理您需要的所有数据。您将能够轻松构建更复杂的应用程序,并访问更广泛的元数据。

  • 使用大量可用于 Java 的 HTTP 堆栈的能力,例如Apache common 的 HTTP Components

  • 兼容性,因为许多应用程序已经能够向您的服务器发送/接收请求。

  • 可扩展性,因为可以根据您的需求变化扩展您的服务器。以您需要保护服务器和客户端之间的流的情况为例。HTTPS 支持嵌入在大多数 Java 的 HTTP 堆栈中。

  • 最后,它会让您知道客户从哪个域提出请求。

于 2013-03-13T23:33:28.883 回答